Я хочу посмотреть настройки системы и получать уведомления при изменении ее значения.Класс Cursor имеет метод setNotificationUri , который звучит хорошо, но он не работает, и его кодирование также кажется странным ... Вот что я сделал:
// Create a content resolver and add a listener
ContentResolver resolver = getContentResolver();
resolver.addStatusChangeListener(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS | ContentResolver.SYNC_OBSERVER_TYPE_PENDING | ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE, new MyObserver());
// I somehow need to get an instance of Cursor to use setNotificationUri in the next step...
Cursor cursor2 = resolver.query(Settings.System.CONTENT_URI, null, null, null, null);
// For testing purposes monitor all system settings
cursor2.setNotificationUri(resolver, Settings.System.CONTENT_URI);
Слушатель:
public class MyObserver implements SyncStatusObserver {
public void onStatusChanged(int which) {
Log.d("TEST", "status changed, which = " + which);
}
}
Ну, очевидно, что слушатель никогда не вызывается, я не могу найти запись с указанным тегом TEST в logcat): (Для тестирования я вручную изменил настройку яркости с ручной на автоматическую в настройках Androidменю).Любой намек, что я делаю не так?Любой другой, лучший способ контролировать системные настройки Android?
Спасибо за любую подсказку!