2012-02-17 77 views
8

我想获取有关邻居单元的信息,我的手机可以“看”atm。到现在为止还挺好。我这样做是这样的:android:NeighboringCellInfo总是空的!?为什么?

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

权限设置? – WarrenFaith 2012-02-17 12:32:37

+0

是的! (查看更新后的文章) – xenonite 2012-02-17 12:42:32

+1

您是否发现了此问题的解决方案?我在Galaxy Nexus上。我已经尝试了下面的所有建议,但是我仍然没有收到邻居单元格中的任何内容。 – ishan 2012-08-22 10:41:48

回答

3

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

看看下面的类似问题。它可能指向您在一些新的方向:

getNeighboringCellInfo() returning null list

Null Issue with NeighboringCellInfo, CID and LAC

Get neighboring cell in Android returns null

0

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