Android getAllCellInfo()在第7行中返回一个空列表
我有一个android应用程序,可以获取手机发射塔的信息。我使用这个getAllCellInfo()获取主单元格和相邻单元格的信息。我在manifest.xml中包含了ACCESS\u\u LOCATION权限,并在运行时请求该权限。 它适用于其他手机,但在华为荣誉7中,该函数返回空列表Android getAllCellInfo()在第7行中返回一个空列表,android,telephonymanager,cellinfo,Android,Telephonymanager,Cellinfo,我有一个android应用程序,可以获取手机发射塔的信息。我使用这个getAllCellInfo()获取主单元格和相邻单元格的信息。我在manifest.xml中包含了ACCESS\u\u LOCATION权限,并在运行时请求该权限。 它适用于其他手机,但在华为荣誉7中,该函数返回空列表 我的代码: Catlog: 我检查了其他人的问题: 和 从一个问题来看,我认为华为手机在我安装和之前不支持getAllCellInfo(),而且应用程序似乎可以在华为荣誉7中获取手机信息: 网络单元信息精
我的代码:
Catlog: 我检查了其他人的问题: 和 从一个问题来看,我认为华为手机在我安装和之前不支持getAllCellInfo(),而且应用程序似乎可以在华为荣誉7中获取手机信息: 网络单元信息精简版
网络怪物
有人知道这方面的信息吗?为了解决
getAllCellInfo()
中没有单元格的问题,我使用getCellLocation()
获取primaryCellId和TrackingArecode,如下所示:
Log.d(TAG, "updateCurrentCell: can't find any cells with getAllCellInfo");
CellLocation primaryLocation = telephonyManager.getCellLocation();
if (primaryLocation != null) {
int primaryCellId = Integer.parseInt(primaryLocation.toString().split(",")[1]);
int trackingAreaCode = Integer.parseInt(primaryLocation.toString().split(",")[0].replace("[", ""));
} else {
Log.d(TAG, "updateCurrentCell: not even with getCellLocation");
}
实现CellInfo()的方法有很多 某些设备不支持getAllCellInfo()
(能够显示所有信息的应用程序很可能是在API 21或更低版本上构建和针对的) 虽然这来得晚,但对遇到同样问题的其他人可能会有所帮助 首先让我解释一下问题:
- 我试图在我的应用程序中使用
getAllCellInfo()
- 该应用程序在Android Emulator(单Sim Emulator)上运行顺利
- 然后我在运行安卓6.0的“双Sim卡,华为CAM-L21”和运行安卓4.4.2的“双Sim卡,荣誉3c”上试用了它。但是在华为,
返回了Empy列表,而null则返回了荣誉getAllCellInfo()
- 我试着用“lgk8”。但Android Studio无法识别该手机。我在LG网站上找不到手机驱动程序(适用于windows)!所以我安装了一些通用的ADB驱动程序。不幸的是,Android Studio没有再次识别该手机
- 应用程序在一些单sim卡华为和三星手机上运行良好;我想不起那些模型了李>
- 我发现上面提到的
在某些手机上可能不起作用:getAllCellInfo
private void getAllCellInfo(列出cellInfo){ //仅针对已注册的单元格返回标识 //Galaxy Nexus中的SlimKat-返回空值:-/ //荣誉7-返回空列表(非空),双卡? // ... }
- 我找到了。据报道,我把LG的司机放下来了;最后,Android Studio重新确认了LG K8手机
- 最后,我的应用程序在双sim手机上运行
在一些华为/荣誉双卡手机上不起作用getAllCellInfo
- 使用,以便Android Studio识别LG手机
val subscriptionManager = getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)
as SubscriptionManager
for (subs in subscriptionManager.activeSubscriptionInfoList) {
val telephonyManager =
(getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager)
.createForSubscriptionId(subs.subscriptionId)
telephonyManager.requestCellInfoUpdate(mainExecutor,
object : TelephonyManager.CellInfoCallback() {
override fun onCellInfo(cellInfo: MutableList<CellInfo>) {
println("updated_cells_count: ${cellInfo.size}")
}
override fun onError(errorCode: Int, detail: Throwable?) {
super.onError(errorCode, detail)
println("updated_cells_error:\n")
detail?.printStackTrace()
}
})
}
val subscriptionManager=getSystemService(Context.TELEPHONY\u SUBSCRIPTION\u服务)
作为订阅管理器
for(subscriptionManager.ActiveSubscriptionInfo列表中的子项){
val电话管理器=
(作为TelephonyManager的getSystemService(Context.TELEPHONY_服务)
.createForSubscriptionId(subs.subscriptionId)
telephonyManager.requestCellInfoUpdate(mainExecutor,
对象:TelephonyManager.CellInfoCallback(){
覆盖fun onCellInfo(cellInfo:MutableList){
println(“更新的单元格计数:${cellInfo.size}”)
}
覆盖错误(错误代码:Int,详细信息:可丢弃?){
super.onError(错误代码、详细信息)
println(“更新的单元格错误:\n”)
详细信息?.printStackTrace()
}
})
}
Hey phuwin,您是否找到了此问题的解决方案?我也一样problem@Royz不是真的…嗨,普温!你找到解决办法了吗?为什么NetworkCellInfo工作得很好?当我打印primaryLocation对象时,我会得到以下行:'primaryLocation:GsmCellLocation:[…]'