Как прослушать изменение в базе данных журнала вызовов?

У меня есть виджет на рабочем столе, который должен уведомлять о пропущенном звонке. Я сделал это с ContentObserver, но это не всегда работает, и я читал, что причина в том, что ContentObservers не должны быть зарегистрированы в AppWidgetProvider. Итак, я хочу попробовать использовать BroadcastReceiver. Я успешно создал прослушиватель изменений календаря, который получает уведомление каждый раз, когда я добавляю, удаляю или изменяю событие в календаре. Я сделал это следующим образом:

<receiver
    android:name="...backend.observers.CalendarChangesReceiver"
>
    <intent-filter>
        <action android:name="android.intent.action.PROVIDER_CHANGED"/>
        <data android:scheme="content"/>
        <data android:host="com.android.calendar"/>
    </intent-filter>
</receiver>

Я попытался использовать описанный выше подход для прослушивания изменений в базе данных журнала вызовов, но это не сработало. Вопрос в том, почему? Код показан ниже.

На мой вопрос еще не ответили в Stackoverflow. Я не могу зарегистрировать получателя для действия ACTION_PHONE_STATE_CHANGED, потому что я не только хочу прослушать новый пропущенный вызов, но и хочу, чтобы мое приложение получало уведомление, когда пропущенный вызов читается пользователем. PROVIDER_CHANGED должно быть полезно для этого, но ACTION_PHONE_STATE_CHANGED для этого бесполезно.

<receiver
    android:name="...backend.observers.CallsChangesReceiver"
>
    <intent-filter>
        <action android:name="android.intent.action.PROVIDER_CHANGED"/>
        <data android:scheme="content"/>
        <data android:host="com.android.phone"/>
    </intent-filter>
</receiver>

person user3289695    schedule 23.02.2014    source источник
comment
Тот же код для календаря у меня не работает. Как ты это сделал? Вы используете Service вместе с BroadcastReceiver?   -  person Yogesh    schedule 08.08.2016
comment
Календарь у меня с этим кодом работает, а телефон нет. Наконец, для телефона я использовал широковещательный приемник, который замечается при поступлении вызова.   -  person user3289695    schedule 09.08.2016