Приемник 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, и тогда вы точно это получите.
надеюсь это поможет