2013-05-14 3 views
0

я в настоящее время обнаружения пропущенных вызовов с использованием:как обнаружить, если Incomming вызовов промахов чтения

String[] projection = new String[]{CallLog.Calls.NUMBER, 
       CallLog.Calls.TYPE, 
       CallLog.Calls.DURATION, 
       CallLog.Calls.CACHED_NAME, 
       CallLog.Calls._ID}; 

     String where = CallLog.Calls.TYPE+"="+CallLog.Calls.MISSED_TYPE+" AND NEW = 1";     

Cursor c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,projection,where, null, null);  c.moveToFirst();    
Log.d("CALL", ""+c.getCount());   
if(c.getCount() > 0) 
// code that displays in a textview the number of missed calls; 

Использование флага Я отображением пропущенных вызовов клиента.

Есть ли способ Я могу сбросить значение текстового вида до 0, если пропущенные звонки считаются?

Есть ли приемник вещания или что-то, что объявляет меня, когда пропущенные звонки читаются?

ответ

0

Чтобы получить информацию о пропущенных вызовах. Вы можете использовать следующее.

String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE }; 
String where = CallLog.Calls.TYPE + "=" + CallLog.Calls.MISSED_TYPE + " AND " + CallLog.Calls.NEW + "=1";   
Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, where, null, null); 

В этом курсоре вы получите всю информацию о пропущенных вызовах. Затем вам нужно сделать еще один звонок, чтобы проверить, прочитан ли звонок. Я думаю, используя TimerTask или используя AlaramManager, вы можете снова заполнить курсор. Или, если вы показываете в своей деятельности, попробуйте снова заполнить ее при запуске этой активности.

Надеюсь, это поможет вам.

+0

Благодарим вас за реле. Таким образом, единственный способ - вернуть метод, который обнаруживает пропущенные и непрочитанные вызовы? Разве нет другого пути? Можете ли вы дать мне лучший пример (код), пожалуйста? –

+0

Если вы хотите показывать только в действии, я думаю, вам нужно заполнить курсор в onResume(), поэтому, если вы оставите приложение, нажав домашнюю кнопку, и когда вернется, если код находится в onResume(), он обновит курсор. – Rahil2952

+0

Я изменил метод onResume(), но то, что я не покидаю приложение, и кто-то звонит, и у меня есть новый пропущенный вызов, и моя активность по-прежнему находится на экране. –

Смежные вопросы