Приемник Android смс и пропущенный звонок не работает после того, как я прочитал смс / пропущенный звонок

Здравствуйте, я хочу получать уведомления, когда число непрочитанных сообщений в моем мобильном телефоне изменяется и количество пропущенных вызовов изменяется, на данный момент мой код выглядит так:

private ContentObserver unreadSMSCO;
private ContentObserver missedCallCO;

@Override
protected void onResume() {
    super.onResume();

    missedCallCO = new ContentObserver(new Handler()){
        public void onChange(boolean selfChange){
            Cursor cursor = getContentResolver().query(Calls.CONTENT_URI, null,Calls.TYPE + " = ? AND " + Calls.NEW + " = ?",new String[] { Integer.toString(Calls.MISSED_TYPE), "1" },Calls.DATE + " DESC ");
            int count = cursor.getCount();
            grid.SetPhoneCallNotification(count);
            cursor.close();
        }
    };

    unreadSMSCO = new ContentObserver(new Handler()){
        public void onChange(boolean selfChange){
            Cursor cursor = getContentResolver().query(Uri.parse("content://sms/"), null, "read = 0", null, null);

            int count = cursor.getCount();

            grid.SetSMSNotification(count);
            cursor.close();
        }
    };

    getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, unreadSMSCO);
    getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, missedCallCO);
}


@Override
protected void onPause() {
    super.onPause();

    getContentResolver().unregisterContentObserver(unreadSMSCO);
    getContentResolver().unregisterContentObserver(missedCallCO);
}

И это прекрасно работает, когда я получаю новое смс, но когда я нажимаю на уведомление или захожу в приложение для сообщений, читаю сообщение и затем возвращаюсь в это приложение, оно не запускает приемник контента, чтобы сообщить мне, что число непрочитанные сообщения изменились. То же самое происходит с пропущенным вызовом, я получаю уведомление, когда кто-то звонит мне, и я не отвечаю, но когда я захожу в журналы вызовов, так что уведомление исчезает, средство распознавания контента не вызывается..

Я делаю что-то здесь не так, нужно ли что-то добавить, чтобы это работало?

Спасибо!

1 ответ

Для информации о пропущенном звонке Вам необходимо позвонить своему "missedCallCO" после нескольких секунд пропущенного звонка.

Обновление пропущенных звонков в системе Android после нескольких секунд пропущенного звонка. Используйте Thread и подождите несколько секунд, например 5 или 6, и тогда вы точно это получите.

надеюсь это поможет

Другие вопросы по тегам