Мониторинг значений системных настроек Android

Я хочу посмотреть системную настройку и получать уведомления при изменении ее значения. Класс 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?

Спасибо за подсказку!

6
задан stefan.at.wpf 31 May 2011 в 16:43
поделиться