安卓短信和未接来电内容接收器在我阅读短信/未接来电后不起作用



你好,当我的手机更改中未读消息的数量和未通话的数量更改时,我想被通知,此前我的代码看起来像这样:

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);
}

当我收到新的SMS时,这很好地工作了,但是当我单击通知或转到消息应用程序时,请读取消息,然后返回到此应用程序,它不会触发内容接收器来通知我未读消息的数量已更改。同样的事情是没有电话,当有人打电话给我而我没有回答时,我会收到通知。

我在这里做错了什么,我需要添加一些东西以使其有效吗?

谢谢!

对于错过的通话信息,您需要在几秒钟的通话后打电话给您的"错过callco"。

几秒钟的通话失踪后实际上错过了Android系统中的通话更新。使用线程并等待一秒钟,例如5或6,然后您肯定会得到它。

希望这有帮助

最新更新