Я играю с небольшим приложением уведомлений.Мои основные требования: когда приходит SMS, включи светодиод.Когда он будет прочитан, выключите его.Первая часть кажется достаточно простой: у меня есть BroadcastReceiver
со следующим в моем манифесте:
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
Однако вторая часть оказалась более хитрой.В настоящее время у меня есть служба, которая запускается всякий раз, когда приходит сообщение. Она запускает TimerTask
каждые 15 секунд, которая запускает этот код:
int count = 0;
Uri providerURI = Uri.parse( "content://sms" );
Cursor cursor = this.getContentResolver().query( providerURI, null, "read=0", null, null );
if( cursor != null ) {
try {
count = cursor.getCount();
}
finally {
cursor.close();
}
}
return count;
Кажется, это работает достаточно хорошо.Когда счетчик равен 0, я отменяю TimerTask
и прекращаю обслуживание.Тем не менее, я беспокоюсь о времени автономной работы.Существует ли какое-либо общее уведомление об изменении количества непрочитанных сообщений?Или есть ли лучший способ сделать это?