android: NeighboringCellInfo 总是空的!?为啥?

Posted

技术标签:

【中文标题】android: NeighboringCellInfo 总是空的!?为啥?【英文标题】:android: NeighboringCellInfo always empty !? why?android: NeighboringCellInfo 总是空的!?为什么? 【发布时间】:2012-03-08 20:20:14 【问题描述】:

我正在尝试获取有关我的手机可以“看到”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" />

【问题讨论】:

您找到解决此问题的方法了吗?我在 Galaxy Nexus 上。我已经尝试了以下所有建议,但在相邻单元格中仍然没有收到任何内容。 这似乎是所有三星设备的问题。相同的代码在其他设备上返回正确的结果... getNeighboringCellInfo() 已弃用,您不应使用它。 【参考方案1】:

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

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

getNeighboringCellInfo() returning null list

Null Issue with NeighboringCellInfo, CID and LAC

Get neighboring cell in Android returns null

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于android: NeighboringCellInfo 总是空的!?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录