Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android 4.2.1中getAllCellInfo返回null_Android_Telephonymanager - Fatal编程技术网

android 4.2.1中getAllCellInfo返回null

android 4.2.1中getAllCellInfo返回null,android,telephonymanager,Android,Telephonymanager,我的Android版本是4.2.1,我正在尝试使用TelephonyManager.getAllCellInfo()方法。在我的清单文件中,我拥有ACCESS\u rough\u UPDATES,ACCESS\u rough\u LOCATION,ACCESS\u FINE\u LOCATION权限。但是,该方法返回null以下命令列出了手机上可用的权限: adb shell pm list permissions -g 在Nexus 4(4.2.2)上,访问\u粗略更新权限未列出 更新: 当

我的Android版本是4.2.1,我正在尝试使用
TelephonyManager.getAllCellInfo()
方法。在我的清单文件中,我拥有
ACCESS\u rough\u UPDATES
ACCESS\u rough\u LOCATION
ACCESS\u FINE\u LOCATION
权限。但是,该方法返回
null

以下命令列出了手机上可用的权限:

adb shell pm list permissions -g
在Nexus 4(4.2.2)上,访问\u粗略更新权限未列出

更新:

当查看源代码的主分支时,没有访问\u粗略\u更新的参考,因此这似乎是文档中的错误。事实上,相关代码只需要访问粗略位置和/或访问精细位置

通过以下方式进行跟踪:

  • 电话管理员
  • 伊泰勒波尼
  • 电话接口管理员
  • 音标
  • 电话工厂
  • GsmPhone
  • 音基
  • ServiceStateTracker
在ServiceStateTracker中:

/**
 * @return all available cell information or null if none.
 */
public List<CellInfo> getAllCellInfo() {
    return null;
}
/**
*@返回所有可用的单元格信息,如果没有,则返回null。
*/
公共列表getAllCellInfo(){
返回null;
}
所以它看起来在所有情况下都会返回null

是指向当前缺陷报告的链接

来自javadoc:

这比使用getCellLocation更可取,尽管对于较旧的设备,这可能返回null,在这种情况下应调用getCellLocation

报告此方法仅在CDMA/LTE设备上实施,其他类型的设备(包括GSM/LTE设备)将返回null。在实现的地方,它将只返回LTE小区

TelephonyManager.getCellLocation()
将仅返回GSM/UMTS或CDMA小区。它仅限于一个单元,即设备当前注册的单元。如果您确信您的代码只在GSM/UMTS或CDMA设备上运行,并且您只对设备当前注册的小区感兴趣,那么这是您最安全的选择

要获取有关其他周围单元格的信息,请使用
TelephonyManager.getneightringcellinfo()
。然而,它仅限于GSM/UMTS小区。此外,其实现取决于无线电固件。大多数三星设备(以及其他一些设备)将返回一个空列表


结论:目前在安卓系统上获取附近手机的信息是一件相当麻烦的事情。您可能需要使用这三种方法的组合来获取所需的信息,即使这样,某些内容也可能无法访问。

api声明如下:


GetAllCellInfo
比使用
getCellLocation
更受欢迎,尽管对于较旧的设备,这可能返回
null
,在这种情况下应调用
getCellLocation

我的手机也是Nexus,它不列出访问权限。您认为在Nexus getAllCellInfo()以外的其他4.2版本的手机上可以使用吗?你有没有在其他手机上检查过它?据我所知,这是API中的一个错误,无法获取手机信息?我想知道他们是否有计划修复这个重要的bug?