Android:为什么NeighboringCellInfo总是为空?

10

我想获取手机目前可以“看到”的相邻单元格信息。目前为止进展顺利,我是这样做的:

telManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//...
ArrayList<NeighboringCellInfo> neighboringCellList = (ArrayList<NeighboringCellInfo>) telManager.getNeighboringCellInfo();

不幸的是,这个列表始终为空。即使在不同的地方也是如此。我住在柏林,所以我不认为这是因为只有一个单元可用!

更新: 我的权限如下:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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_COARSE_UPDATES" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

1
你解决这个问题了吗?我使用的是Galaxy Nexus。我已经尝试了下面所有的建议,但是仍然无法在相邻的单元格中接收到任何内容。 - ishan
好像所有三星设备都存在问题。在其他设备上,相同的代码可以返回正确结果... - xenonite
getNeighboringCellInfo()已经被弃用,你不应该使用它。 - ofskyMohsen
2个回答

3

1

getNeighboringCellInfo()在安卓中已经被弃用。您应该使用getAllCellInfo(),并将其输出保存在List中,并使用循环来确定每个List元素是哪个邻居,使用element.isRegistered()判断。 邻居单元格具有isRegistered() == false


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接