我目前正在尝试在软件中设置Android系统时间.是的,我知道有很多人尝试过 - 而且像我现在一样失败了.:-)
但我也知道可以在ROOTED手机上设置Android系统时间.我已经测试了一个名为ClockSync的应用程序.
所以我想知道如何在ROOTED设备上设置系统时间.请不要说这是不可能的.:-)
到目前为止我尝试的是设置以下权限:
<uses-permission android:name="android.permission.SET_TIME_ZONE"/>
<uses-permission android:name="android.permission.SET_TIME"/>
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中:
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?
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到以下例外:
java.lang.SecurityException:setTime:用户10054和当前进程都没有android.permission.SET_TIME.
我在ClockSync完美运行的同一设备上进行测试.那么 - 我做错了什么?或者更好:你能提供有效的测试代码吗?
我想设置系统时钟SystemClock.setCurrentTimeMillis,但遇到以下错误:
"Unable to open alarm driver: Permission denied"
Run Code Online (Sandbox Code Playgroud)
以下是setCurrentMillisAndroid开发者网站的API 说明:
public static boolean setCurrentTimeMillis (long millis)
Run Code Online (Sandbox Code Playgroud)
从以下版本开始:API Level 1设置当前的挂起时间,以毫秒为单位.要求调用进程具有适当的权限.
如果时钟成功设置为指定时间,则返回.
因此,应用程序需要获取设置时间的权限.在我插入的AndroidManisfest.xml中,android.permission.SET_TIME但是我有相同的消息错误.
我已尝试在互联网上找到各种解决方案,似乎即使在android.permission.SET_TIME引入的FroYo(Android 2.2)上也无法设置没有root的系统时间,正常的应用程序因为/ dev/alarm文件而无法获得此权限664 permission.因此,解决方案是更改权限666但需要root设备,并且太具有侵入性,无法成为解决方案.
我想为我的公司创建一个App来同步不同系统之间的数据,这对于同步时钟至关重要.
提前感谢您的意愿
日食