jek*_*jek 64
您无法使用普通的现成手机,因为无法获得SET_TIME权限.此权限拥有的ProtectionLevel的signatureOrSystem,所以没有办法对市场的应用程序更改全局系统时间(但也许有黑色vodoo魔法我还不知道).
您不能使用其他方法,因为这在Linux级别上被阻止(请参阅下面的长答案) - 这就是为什么所有使用终端和SysExecs的试验都会失败的原因.
如果您可以获得许可,或者因为您拥有手机,或者构建并签署了自己的平台图像,请继续阅读.
这是可能的,并已完成.你需要android.permission.SET_TIME.然后使用AlarmManagervia Context.getSystemService(Context.ALARM_SERVICE)和它的方法setTime().
用于将活动或服务的时间设置为2010/1/1 12:00:00的代码段:
Calendar c = Calendar.getInstance();
c.set(2010, 1, 1, 12, 00, 00);
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
am.setTime(c.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)
如果要更改时区,则方法应该非常相似(请参阅android.permission.SET_TIME_ZONE和setTimeZone)
正如在多个线程中指出的那样,只有system用户才能更改系统时间.这只是故事的一半.SystemClock.setCurrentTimeMillis()直接写入缺少世界可写权限/dev/alarm所拥有的设备文件system.换句话说,只有运行的进程system可以使用该SystemClock方法.对于这种方式,android权限无关紧要,没有涉及实体检查适当的权限.
这是内部预安装的设置应用程序的工作方式.它只在system用户帐户下运行 .
对于镇上的所有其他孩子,都有警报管理员.这是一个系统服务,在system_server- 猜测什么 - system用户帐户下运行.它公开了上述setTime方法,但强制执行SET_TIME权限,反过来只是SystemClock.setCurrentTimeMillis内部调用(由于警报管理器正在运行的用户而成功).
~~~干杯
Cas*_*ash 21
根据这个帖子,无论我们提供什么权限,用户应用程序都无法设置时间.相反,最好的方法是让用户手动设置时间.我们将使用:
startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有办法将它们直接链接到时间设置(这将节省他们一次点击).通过使用ellapsedRealtime,我们可以确保用户正确设置时间.
Led*_*ine 14
根设备的解决方案可以执行命令

您可以使用以下方法通过代码执行此操作:
private void changeSystemTime(String year,String month,String day,String hour,String minute,String second){
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
String command = "date -s "+year+month+day+"."+hour+minute+second+"\n";
Log.e("command",command);
os.writeBytes(command);
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
只需调用上一个方法,如下所示:
changeSystemTime("2015","04","06","13","09","30");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76790 次 |
| 最近记录: |