2012-02-17 80 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