В настоящее время я пытаюсь установить системное время 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 работает отлично. Так что - что я делаю не так? Или лучше: Можете ли вы предоставить проверенный код, который работает?