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

android:NeightingCellInfo总是空的!?为什么?,android,cell,gsm,Android,Cell,Gsm,我正在尝试获取我的手机可以“看到”atm机的相邻手机的信息。到现在为止,一直都还不错。我是这样做的: telManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); //... ArrayList<NeighboringCellInfo> neighboringCellList = (ArrayList<NeighboringCellInfo>) telManager

我正在尝试获取我的手机可以“看到”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" />
telemanager=(TelephonyManager)context.getSystemService(context.TELEPHONY_服务);
//...
ArrayList NeightringCellList=(ArrayList)telManager.getNeightringCellInfo();
不幸的是,这个列表一直都是空的。甚至在不同的地方。我住在柏林,所以我不认为这是因为实际上只有一个手机可用

更新: 我的权限如下所示:

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

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

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


GetNeightringCellInfo()
在android中不受欢迎。您应该使用
getAllCellInfo()
并将其输出保存在
列表中
并在列表的每个元素上使用一个循环,使用
element.isRegistered()
确定哪个是邻居。
相邻单元格有
isRegistered()==false

您找到解决此问题的方法了吗?我在银河系。我已经尝试了下面所有的建议,但我仍然没有收到任何相邻的细胞。嗯,这似乎是一个问题,所有三星设备。相同的代码在其他设备上返回正确的结果…GetNeightringCellInfo()已被弃用,您不应该使用它。