Получение следующей информации о тревоге при отсутствии такой функции - PullRequest
0 голосов
/ 11 сентября 2010

У меня есть этот код в моем приложении

Alarm1 = Settings.System.getString(getContentResolver(),
                Settings.System.NEXT_ALARM_FORMATTED);

Работает на HTC, Motorola, но не на телефонах Galaxy. Приложение вылетает. Будет ли следующее сообщение об ошибке без сбоя службы приложения?

 String Alarm1=null;
 try{
     Alarm1 = Settings.System.getString(getContentResolver(),
                Settings.System.NEXT_ALARM_FORMATTED);
    }
     catch (Exception e) {
     Log.i("Exception", "Exception next alarm not found = " + e);
     }
   if (TextUtils.isEmpty(Alarm1)) {
      //if i am i here either no alarm is set or couldn't read it from the phone
      //do something else
    }

Если нет другого кода для galaxy s, и могу ли я его найти. Как я могу заставить его сгенерировать исключение на телефоне, который работает в целях тестирования? Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 марта 2016

Settings.System.NEXT_ALARM_FORMATTED устарела начиная с API 21. Вместо этого используйте следующее:

AlarmManager.AlarmClockInfo alarmInfo = am.getNextAlarmClock();

, где am - это экземпляр AlarmManager.

0 голосов
/ 09 декабря 2010

У меня такая же проблема на виджете, который я разработал, похоже, что в Galaxy S нет записи в файле settings.db с идентификатором NEXT_ALARM_FORMATTED, это вызывает сбой приложения. К сожалению, при использовании try / catch этого не достаточно для решения проблемы, виджет все еще падает.

У меня нет Galaxy S для отладки проблемы, если вы найдете какой-либо обходной путь (кроме вставки с использованием sqlite3 в строку con settings.db), дайте мне знать. Может быть, вы можете попытаться смоделировать это поведение, передав неверный идентификатор в функцию Настройки, я попробую позже сегодня ...

P.S. Чтобы временно это исправить на galaxy s вы можете (через adb shell)

sqlite3 /data/data/com.android.providers.settings/databases/settings.db
UPDATE "system" SET value='' WHERE name='next_alarm_formatted';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...