我的目标是获取所有相邻的手机信号塔信息,如cell id,cell lac和RSS值,我使用类telephonyManager.getNeighboringCellInfo()
获取所需信息,但每次都返回null。
但是,我成功地使用telephonyManager.getCellLocation()
获得了与移动设备(即服务小区)相连的最近的单小区塔信息。
我试图解决这个问题并搜索与之相关的所有内容,然后我们发现所有三星设备都不支持telephonyManager.getNeighboringCellInfo()
类,它不适用于三星,但它适用于HTC和LG设备。 / p>
看到这个: https://code.google.com/p/android/issues/detail?id=24136
我需要在三星Android设备上应用它并获取相邻的小区信息。谁能告诉我怎么做到这一点?
单细胞代码:
if (telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
cellLocation = (GsmCellLocation)telephonyManager.getCellLocation();
if(cellLocation!=null){
int cell_ID = cellLocation.getCid();
int cell_psc= cellLocation.getPsc();
int cell_lac =cellLocation.getLac();
cell_info.setText("Cell_ID: "+ String.valueOf(cell_ID) +"\n"+"Cell_psc: "+ String.valueOf(cell_psc)+"\n"+
"Cell_lac: " +String.valueOf(cell_lac)+"\n"+cellLocation.toString());
}
}
邻近单元代码:
List<NeighboringCellInfo> neighboringCellInfos = telephonyManager.getNeighboringCellInfo();
for(NeighboringCellInfo neighboringCellInfo : neighboringCellInfos)
{
neighboringCellInfo.getCid();
neighboringCellInfo.getLac();
neighboringCellInfo.getPsc();
neighboringCellInfo.getNetworkType();
neighboringCellInfo.getRssi();
neibouring_cell_information.add(neighboringCellInfo.getCid()+"\n"+ neighboringCellInfo.getRssi());
}
Toast.makeText(getApplicationContext(),neibouring_cell_information +"ok" , Toast.LENGTH_LONG).show();
所有添加的权限:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
答案 0 :(得分:3)
三星手机似乎不支持邻居显示。请查看此论坛:
http://www.finetopix.com/showthread.php?30787-G-NetTrack-Android-OS-Netmonitor/page2
该应用程序的开发人员表示,三星芯片不支持显示邻居的命令。
答案 1 :(得分:2)
正如@Ayman所说,大多数三星手机和其他一些手机都不支持getNeigbouringCells()
cellid实现因移动设备而异,因为这些功能被认为是可选的。例如:
三星(所有设备):getNeigbouringCells()根本不受支持,并且总是返回一个空列表。
根据这个:http://wiki.opencellid.org/wiki/Android_library
和此: