Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Разрешения Android OS 2.2: я совершенно не понимаю, почему этот простой фрагмент кода не работает. Что я делаю неправильно?

Автор вопроса: K-RANОтветов: 3

Я просто играю с кодом. Я создаю Activity и просто делаю что-то вроде этого:

long lo = currentTimeMillis();
System.out.println(lo);

lo *= 3;
System.out.println(lo);

SystemClock.setCurrentTimeMillis(lo);
System.out.println( currentTimeMillis() );

Да, в моем AndroidManifest.xml я добавил:

<uses-permission android:name="android.permission.SET_TIME"></uses-permission>
<uses-permission android:name="android.permission.SET_TIME_ZONE"></uses-permission>

Ничего не меняется. Системные часы никогда не сбрасываются... они просто продолжают тикать. Ошибка, которую я получаю, просто говорит о том, что программе не было предоставлено разрешение "SET_TIME". Уровень защиты 3.

Разрешения есть... и в API для 2.2 написано, что эта фича теперь поддерживается. Я понятия не имею, что я делаю неправильно.

Если android.content.Intent; вступает в игру, пожалуйста, объясните. Я действительно не понимаю, в чем идея намерений!

Спасибо за любую помощь!

  • Указывает ли logcat что-нибудь? Yann Ramin 27.05.2010

operating-systemandroidpermissionstime

Ответы

Ответ 1 · рейтинг 12 · Romain Guy

Есть разрешение SET_TIME_ZONE, но нет разрешения SET_TIME. Приложения не могут программно изменять системные часы.

Обновить

SET_TIME доступно с версии 2.2, но может быть предоставлено только системному процессу или приложениям, подписанным системной подписью.

Ответ 2 · рейтинг 2 · user718146

использование AlarmManager с разрешением SET_TIME для установки системного времени работает :)

Ответ 3 · рейтинг -3 · poeschlorn

вставка System.out.println() использует Log.v() или аналогичный.

Я думаю, что нашел вашу ошибку, попробуйте: удалите </uses-permission> в обеих строках, это должно сработать.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы