android:NeighboringCellInfo总是空的!为什么?

时间:2012-02-17 12:25:31

标签: android cell gsm

我正在尝试获取有关我的手机可以“看到”atm的相邻小区的信息。到现在为止还挺好。我是这样做的:

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" />

2 个答案:

答案 0 :(得分:3)

我在同一个问题上看到了几个问题,但似乎没有一个问题得到好的和确定性的解决方案。最常见的建议是确保您拥有正确的权限(我在您的问题中看到了您的权限),并且有些人说这只适用于2G而非3G。

看看以下类似的问题。它可能会指向你一些新的方向:

getNeighboringCellInfo() returning null list

Null Issue with NeighboringCellInfo, CID and LAC

Get neighboring cell in Android returns null

答案 1 :(得分:1)

在Android中不推荐使用

getNeighboringCellInfo()。您应该使用getAllCellInfo()并将其输出保存在List中,并使用List的每个元素上的循环决定哪个是使用element.isRegistered()的邻居。 NeighboringCells有isRegistered() == false