gpt4 book ai didi

java - 在 Android CallLogCalls 中使用 PHONE_ACCOUNT_ID 识别 SIM 卡插槽

转载 作者:行者123 更新时间:2023-12-05 04:58:48 30 4
gpt4 key购买 nike

在双 SIM 卡手机中,我设法使用 PHONE_ACCOUNT_ID 属性在通话记录中区分 SIM 卡,如下面的代码所示。现在我需要知道实际使用的是什么 SIM 卡(1 或 2)来调用或接听电话。 PHONE_ACCOUNT_ID 显示类似 8953011201104578086F 的内容,用于一张 SIM 卡和类似卡,但不等于另一张。这是在三星手机上测试的:

fun readCallLog() {
val cursor = context.contentResolver.query(CallLog.Calls.CONTENT_URI,null, null, null, CallLog.Calls.DATE + " DESC")
val number = cursor?.getColumnIndex(CallLog.Calls.NUMBER)
val date = cursor?.getColumnIndex(CallLog.Calls.DATE)
val type = cursor?.getColumnIndex(CallLog.Calls.TYPE)
val account_id = cursor?.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID)


val tmp : MutableList<List<String?>> = mutableListOf()

while (cursor?.moveToNext() == true ) {
val call_number = if (number != null) cursor.getString(number) else ""
val call_date = if(date != null) cursor.getString(date) else ""
val call_type = if(type != null) cursor.getInt(type).toString() else ""
val call_account_id = if(account_id != null) cursor.getString(account_id) else ""

tmp.add( listOf(call_number, call_date, call_type, call_account_id))
}
}

最佳答案

您可以使用 SubscriptionManager.getActiveSubscriptionInfoList() 获取有关 SIM 卡的信息。

在某些设备上,Call.PHONE_ACCOUNT_ID 等于 subscriptionInfo.getSubscriptionId(),但是在其他设备上(您的情况)subscriptionInfo.getIccId() 是它的子串,所以你需要检查两者。

另见 SubscriptionManager引用。

关于java - 在 Android CallLogCalls 中使用 PHONE_ACCOUNT_ID 识别 SIM 卡插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63834168/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com