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

Я просто играю с некоторым кодом. Я создаю 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>

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

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

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

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

3 ответа

Решение

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

Обновить

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

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

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

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

Другие вопросы по тегам