в мобильных телефонах с двумя SIM-картами мне удается различать симов в журнале вызовов, используя свойство PHONE_ACCOUNT_ID, как показано в приведенном ниже коде. Теперь мне нужно знать, какая сим-карта на самом деле использовалась (1 или 2), чтобы сделать или принять вызов. PHONE_ACCOUNT_ID показывает что-то вроде этого 8953011201104578086F для и одной симки и похожей но не равной другой. Это было проверено на мобильном телефоне Samsung.
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))
}
}