Установка системного времени ROOTED телефона

В настоящее время я пытаюсь установить системное время Android в программном обеспечении. Да, я знаю, что многие люди пытались это сделать - и потерпели неудачу, как я сейчас. :-)

Но я также знаю, что можно установить системное время Android на телефонах с ROOTED. Я тестировал приложение под названием ClockSync, которое делает именно это.

Итак, я хочу узнать, как установить системное время на устройствах с ROOTED. Пожалуйста, не говорите, что это невозможно. :-)

Что я пробовал до сих пор, так это установить следующие разрешения:

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

И затем в моем коде:

AlarmManager a = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
long current_time_millies = System.currentTimeMillis();
try {
    a.setTime((long)current_time_millies+10000);
} catch (Exception e) {
// Why is this exception thrown?
}

Но я всегда получаю следующее исключение:

java.lang.SecurityException: setTime: Ни пользователь 10054, ни текущий процесс не имеют android.permission.SET_TIME.

Я тестирую это на том же устройстве, где ClockSync работает отлично. Так что - что я делаю не так? Или лучше: Можете ли вы предоставить проверенный код, который работает?

22
задан user1131536 5 January 2012 в 07:33
поделиться