我有一个主屏幕小部件,必须在未接来电时收到通知。我使用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>