android - 如何以编程方式在双卡移动的情况下为双卡获取 CID 和 LAC?
问题描述
我正在做一个项目,我必须使用移动塔跟踪位置。当 sim2 处于紧急状态时,它会在 Telephony Manager 中给出空指针异常。我必须为两个模拟人生获取 LAC、CID、MCC、MNC。我可以使用 SubscriptionManager 获取 MCC、MNC。但是我怎样才能获得两张 sim 卡的 LAC 和 MCC?
解决方案
试试这个方法
创建一个 pojo 让我们说Operator
data class Operator(
var operatorName: String? = null,
var operatorNumber: String? = null,
var position: Int? = null,
var subscriptionId: String? = null,
var subId: Int? = null)
现在在活动中
var subscriptionManager =getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
val listOfSubInfo = subscriptionManager.activeSubscriptionInfoList
for (value in listOfSubInfo) {
operatorList?.add(Operator(value.displayName.toString(), value.number, value.simSlotIndex, value.iccId, value.subscriptionId))
}
您现在拥有设备内所有模拟人生信息的列表。您可以使用此方法获取 MCC、MNC、subscriptionId、iccId。
推荐阅读
- ruby-on-rails - Rails 6.0:如何打印列值以打印翻译语言环境键
- ios - 如何创建一个在后台正常运行的iOS闹钟
- javascript - 基于javascript模块中的数据类型构建不同的模板
- apl - 在 APL 中是否有将字符串连接成一个字符标量的符号?
- php - SQL 选择:多个值
- c# - 如何在 C# 中更改语音合成器的语音或速度
- exception - perl 5 鲤鱼的 raku 类似物是什么?
- java - 使用自定义收集器对象对 Java Stream 中的哈希映射中的值进行分组?
- javascript - 即使firebase工具说我登录,为什么角度火说我没有登录?
- javascript - 如何在 Nextjs 9 中设置请求标头