我正在学习Android开发,尝试一些与Android相关的东西,现在我有一个场景。
- 我想通过我的应用程序更改Android手机的系统日期( 首先我想知道这是否可行?)
布局如下
现在我想要的是当用户点击按钮时,日期应该增加20天,我该怎么做。
我无法开始...请帮忙。
我正在学习Android开发,尝试一些与Android相关的东西,现在我有一个场景。
布局如下
现在我想要的是当用户点击按钮时,日期应该增加20天,我该怎么做。
我无法开始...请帮忙。
正如我之前所说,这是不可能的。您需要SET_TIME
权限,该权限仅由系统授予安装在Android系统图像中的应用程序。如果您能获得该特权,则可以轻松更改AlarmManager。 SystemClock.setCurrentTimeMillis
将写入/dev/allarm文件。
adb shell ls -l /dev/alarm
crw-rw-r-- system radio 10, 46 2013-06-12 10:46 alarm
c
表示字符型特殊文件(存储在/dev目录中)。system和radio具有读写权限(rw-,三个位,整数值为6),其他人只有读取权限(r,整数值为4)。因此,该文件的权限是664
。如果您可以获得root用户权限(运行su
命令),则可以更改该文件的权限并在其中编写新值。已提交错误报告以请求Google允许应用程序以编程方式修改移动日期,但被拒绝了。这里是参考资料。
不幸的是,blackbelt是正确的;Android让我们做很多很酷的事情,但编程更改系统时间不是其中之一。
既然我看到你正在寻找更可靠/官方的来源,我建议你查看这个与Google的开放式工单,它表明这是一个公开的问题--它应该可以工作,但实际上并没有,而且似乎Google不会在短期内修复它。其要点是SET_TIME保护级别设置得比应该高。(有关权限的更多信息,请参见此处)
虽然这与编程更改时间不完全相同,但如果出于某种原因确实需要更改系统时间,则仍然可以让用户为您更改系统时间。此线程将解释如何实现,如果您想采用这种方法。
希望这些信息对您有所帮助!