在Android中获取相邻单元格返回null

时间:2012-02-01 13:43:30

标签: android cell

我正在尝试在Android中获取相邻的单元格信息,但函数getNeighboringCellInfo()始终返回null。

我使用了以下代码:

protected void getCellInfo() {
    TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

    List<NeighboringCellInfo> neighborCells = telephonyManager.getNeighboringCellInfo();
    if (neighborCells == null) {
        OutUtils.debug("no neighbor cells");
    } else {
        ...
    }
}

context变量来自Service类。

我的AndroidManifest.xml权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我尝试使用和不启用Android中的“使用2G网络”选项。

有什么想法吗?感谢

3 个答案:

答案 0 :(得分:4)

如果您可以运行logcat,请尝试运行 logcat -b radio 。如果幸运的话,RIL代码将吐出调试消息,显示调制解调器对相邻小区信息的实际请求。很可能调制解调器只是返回一个空列表。如果是这种情况,它与权限无关,并且您无法修复它。

答案 1 :(得分:1)

cellid实现因移动设备而异,因为这些功能被认为是可选的。例如:

三星(所有设备):getNeigbouringCells()根本不受支持,并且总是返回一个空列表。

根据这个:http://wiki.opencellid.org/wiki/Android_library

并且:https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=24306

答案 2 :(得分:0)

我想,也许你没有在Manifest中设置所有必要的权限。看这里Null Issue with NeighboringCellInfo, CID and LAC

如果您认为自己拥有它们,请将清单放在问题中。