你好,当我的手机更改中未读消息的数量和未通话的数量更改时,我想被通知,此前我的代码看起来像这样:
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,然后您肯定会得到它。
希望这有帮助