2017-01-12 8 views
3

Я хочу получить историю журнала звонков по номеру SIM-номера. Как это изображение:Получить журнал вызовов по слоту SIM в Зефире и под андроидом

Call Details want to fetch

Для этого я искал много сайтов, пока я не получил:

Cursor managedCursor = getActivity().managedQuery(CallLog.Calls.CONTENT_URI, null, 
      null, null, strOrder); 
int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER); 
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE); 
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE); 
int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION); 
int account = 0; 
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { 
    account = managedCursor.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_COMPONENT_NAME);//for versions above lollipop 
    ac_id = managedCursor.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID); 

} 

В настоящее время получение PHONE_ACCOUNT_COMPONENT_NAME и PHONE_ACCOUNT_ID согласно андроида документации, но, как использовать его, чтобы получить сим-слот

Вслед за эти ссылки:

Samsung android 6.0 how to get dual sim call logs with sim slot id?

Get calls from log by specific SIM

How to get carrier name from dual sim phone Android?

Programmatically retrieve IMEI number for dual SIM in android

, но ни один из них не работает для меня.

Я получил имена обоих нынешних симов в двойном сим в api> 21, используя класс SubscriptionManager, но не смог проверить его в журнале вызовов.

Просьба предложить мне лучший способ сделать это.

+0

Найти любое решение? –

ответ

0

Вы можете запросить следующую колонку в CallLog: https://developer.android.com/reference/android/provider/CallLog.Calls.html#PHONE_ACCOUNT_ID

Убедитесь, у вас есть следующий набор разрешений:

<uses-permission android:name="android.permission.READ_CALL_LOG" /> 

Затем добавьте следующий Java-код, чтобы получить столбец:

Uri allCalls = Uri.parse("content://call_log/calls"); 
Cursor c = managedQuery(allCalls, null, null, null, null); 
String id = c.getString(c.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID)); 
+0

спасибо, я нашел это, но можете ли вы отправить какой-то код или небольшой пример. –

+0

@VishalDalve См. Отредактированный код - я добавил пример. Пожалуйста, поддержите мой ответ, если вы сочтете это полезным, это будет означать много. Спасибо! – Faraz

+0

Если вы правильно поняли мой вопрос, ответ, который вы дали, уже сделан сам. Я хочу следующую часть моего вопроса. И я уже принял ваш ответ. Спасибо. –