我正在尝试获取有关我的手机可以“看到”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" />
答案 0 :(得分:3)
我在同一个问题上看到了几个问题,但似乎没有一个问题得到好的和确定性的解决方案。最常见的建议是确保您拥有正确的权限(我在您的问题中看到了您的权限),并且有些人说这只适用于2G而非3G。
看看以下类似的问题。它可能会指向你一些新的方向:
getNeighboringCellInfo() returning null list
答案 1 :(得分:1)
getNeighboringCellInfo()
。您应该使用getAllCellInfo()
并将其输出保存在List
中,并使用List的每个元素上的循环决定哪个是使用element.isRegistered()
的邻居。
NeighboringCells有isRegistered() == false
。