android - My app functionality is lost on some devices -
my code below works on emulator on devices .e.g. lg , zte devices work 100%. however, on other devices samsung , huawei, poi's need plot not working. else works including network measurements through phonestatelistener. on teh non-functional devices, app opens displays google map with no poi's shown. have tried calling makesite() method in different places , makes no difference.
any ideas on doing incorrectly. new android coding lost @ stage:
enter code here@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_maps); requestforpermission(); pslistener = new myphonestatelistener(); telephonymanager = (telephonymanager) getsystemservice(context.telephony_service); telephonymanager.listen(pslistener, myphonestatelistener.listen_signal_strengths); supportmapfragment mapfragment = (supportmapfragment) getsupportfragmentmanager() .findfragmentbyid(r.id.map); mapfragment.getmapasync(this); } public void makesite() throws ioexception, biffexception { double latitude; double longitude; try { assetmanager assetmanager = getassets(); inputstream inputstream = assetmanager.open("newfile.xls"); workbook workbook = workbook.getworkbook(inputstream); sheet sheet = workbook.getsheet(0); (int row = 1; row < 5010; row++) { cell sitenamecell = sheet.getcell(0, row); cell latitudecell = sheet.getcell(1, row); cell longitudecell = sheet.getcell(2, row); cell siterevcellh = sheet.getcell(4, row); cell siterevcella = sheet.getcell(5, row); cell siterevcellb = sheet.getcell(6, row); cell siterevcellu = sheet.getcell(7, row); latitude = double.parsedouble(latitudecell.getcontents()); longitude = double.parsedouble(longitudecell.getcontents()); sitename = sitenamecell.getcontents(); siterevh = java.lang.boolean.parseboolean(siterevcellh.getcontents()); sitereva = java.lang.boolean.parseboolean(siterevcella.getcontents()); siterevb = java.lang.boolean.parseboolean(siterevcellb.getcontents()); siterevu = java.lang.boolean.parseboolean(siterevcellu.getcontents()); towerlatlong = new latlng(latitude, longitude); if (siterevh == true) { sitehigh(towerlatlong, sitename); } else if (sitereva == true) { siteabove(towerlatlong, sitename); } else if (siterevb == true) { sitebelow(towerlatlong, sitename); } else if (siterevu == true) { positionsite(towerlatlong, sitename, sitechurn); } } } catch (exception e) { } } public void positionsite(latlng towerlatlong, string sitename, string sitechurn) { markeroptions options = new markeroptions() .icon(bitmapdescriptorfactory.fromasset("ctower1.png")) .title(sitename) .position(towerlatlong); mmap.addmarker(options); } public void sitehigh(latlng towerlatlong, string sitename) { markeroptions options = new markeroptions() .icon(bitmapdescriptorfactory.fromasset("ctower1.png")) .title(sitename) .position(towerlatlong); mmap.addmarker(options); } public void siteabove(latlng towerlatlong, string sitename) { markeroptions options = new markeroptions() .icon(bitmapdescriptorfactory.fromasset("ctower1.png")) .title(sitename) .position(towerlatlong); mmap.addmarker(options); } public void sitebelow(latlng towerlatlong, string sitename) { markeroptions options = new markeroptions() .icon(bitmapdescriptorfactory.fromasset("ctower1.png")) .title(sitename) .position(towerlatlong); mmap.addmarker(options); } @override public void onmapready(googlemap googlemap) { mmap = googlemap; try { makesite(); latlng site = towerlatlong; string name = sitename; mmap.movecamera(cameraupdatefactory.newlatlng(site)); //mmap.movecamera(cameraupdatefactory.newlatlngzoom((site), 16.0f)); setupmap(); } catch (exception e) { toast = toast.maketext(this, "caught :" + e.getmessage(), toast.length_short); } } public void setupmap() throws ioexception, biffexception { uisettings ui; ui = mmap.getuisettings(); ui.setzoomcontrolsenabled(true); ui.setcompassenabled(true); ui.setallgesturesenabled(true); mmap.setbuildingsenabled(true); mmap.setmaptype(mmap.map_type_normal); mmap.setmylocationenabled(true); mmap.setpadding(0, 70, 0, 0); //makesite(); if (build.version.sdk_int > build.version_codes.m) { if (activitycompat.checkselfpermission(this, manifest.permission.access_fine_location) == packagemanager.permission_granted) { mmap.setmylocationenabled(true); } else { } } else { } mmap.setmylocationenabled(true); } @targetapi(24) public void requestforpermission() { if (contextcompat.checkselfpermission(this, manifest.permission.access_coarse_location) != packagemanager.permission_granted) { requestpermissions(new string[]{manifest.permission.access_coarse_location}, code_access_coarse); } } public class myphonestatelistener extends phonestatelistener { public int netid; public int netid2; public int netid3; public int netid4; public int netid5; public int netid6; public double netid7; public int nettype; @override public void onsignalstrengthschanged(signalstrength signalstrength) { super.onsignalstrengthschanged(signalstrength); nettype = telephonymanager.getnetworktype(); telephonymanager telephonymanager = (telephonymanager) getsystemservice(context.telephony_service); list<cellinfo> cellinfo = telephonymanager.getallcellinfo(); if (cellinfo != null) { (int = 0; < cellinfo.size(); i++) { if (cellinfo.get(i).isregistered()) { if (cellinfo.get(i) instanceof cellinfowcdma) { cellinfowcdma cellinfowcdma = (cellinfowcdma) telephonymanager.getallcellinfo().get(0); cellsignalstrengthwcdma cellsignalstrengthwcdma = cellinfowcdma.getcellsignalstrength(); cellidentitywcdma cellidentitywcdma = cellinfowcdma.getcellidentity(); netid3 = cellsignalstrengthwcdma.getasulevel(); netid2 = netid3 - 116; netid = cellidentitywcdma.getcid() & 0xffff; netid4 = cellidentitywcdma.getlac(); } else if (cellinfo.get(i) instanceof cellinfogsm) { cellinfogsm cellinfogsm = (cellinfogsm) telephonymanager.getallcellinfo().get(0); cellsignalstrengthgsm cellsignalstrengthgsm = cellinfogsm.getcellsignalstrength(); cellidentitygsm cellidentitygsm = cellinfogsm.getcellidentity(); netid = cellidentitygsm.getcid() & 0xffff; netid2 = (2 * netid3) - 113; netid3 = cellsignalstrengthgsm.getasulevel(); netid4 = cellidentitygsm.getlac(); } else if (cellinfo.get(i) instanceof cellinfolte) { cellinfolte cellinfolte = (cellinfolte) telephonymanager.getallcellinfo().get(0); cellsignalstrengthlte cellsignalstrengthlte = cellinfolte.getcellsignalstrength(); cellidentitylte cellidentitylte = cellinfolte.getcellidentity(); netid = cellidentitylte.getci() / 256; netid3 = cellsignalstrengthlte.getasulevel(); netid2 = netid3 - 140; netid4 = cellidentitylte.gettac(); } } } } if (nettype == 13) { settextviewtextthree(string.valueof("node id:" + (netid)) + " " + "rsrp:" + (netid2) + " " + "tac:" + (netid4)); } else if (nettype == 3 || nettype == 10 || nettype == 8 || nettype == 15) { settextviewtextthree(string.valueof("cell id:" + (netid)) + " " + "rscp:" + (netid2) + " " + "lac:" + (netid4)); } else if (nettype == 2) { settextviewtextthree(string.valueof("cell id:" + (netid)) + " " + "rxlev:" + (netid2) + " " + "lac:" + (netid4)); } } } public void settextviewtextthree(string s) { ((textview) findviewbyid(r.id.rxlevel)).settext(s); } }
Comments
Post a Comment