我想通过SystemClock.setCurrentTimeMillis设置系统时钟,但遇到了以下错误:
"Unable to open alarm driver: Permission denied"下面是安卓开发者网站对setCurrentMillis API的描述:
public static boolean setCurrentTimeMillis (long millis) API级别1设置当前的墙时间,以毫秒为单位。要求调用进程具有适当的权限。
如果时钟成功地设置为指定的时间,则返回。
因此,应用程序需要获得设置时间的权限。在AndroidManisfest.xml中,我插入了android.permission.SET_TIME,但是我有相同的消息错误。
我尝试过在互联网上找到的各种解决方案,而且似乎不可能设置没有根的系统时间,即使在FroYo (Android2.2)上引入了android.permission.SET_TIME,正常的应用程序无法获得这个权限,因为/dev/文件中有664 permission。因此,解决方案是改变666中的权限,但需要有根的设备,而且太过入侵,不可能成为解决方案。
我想为我的公司创建一个应用程序来同步不同系统之间的数据,并且是同步时钟的关键。
预先感谢你的意愿
日食
发布于 2011-07-18 13:50:06
日食,
我在这个问题上为你做了相当多的检查,并找到了一张与谷歌的公开罚单来解决这个问题。唯一的事情是这个标签自2009年11月8日起就已经打开了。基本上只有系统才能改变时间,即使有许可。根据对下面链接的评论,一位开发人员做了一些研究,并指出当权限SET_TIME被创建时,在操作系统中没有给它适当的保护级别(signatureorSystem v.s .危险)。因此,它没有做它应该做的事情。
http://code.google.com/p/android/issues/detail?id=4581
以下是权限可以具有的各种保护级别的解释。目前,根据开发人员的上述引文,SET_TIME有"signatureorSystem“时,它应该有”危险“。
http://developer.android.com/guide/topics/manifest/permission-element.html#plevel
总之,目前没有办法改变时间的程序,而不生根的电话。
最后一个注意事项是,如果您想要与自定义的rom,也有一个开放的门票,为Cyanogenmod添加的能力,以及他们的rom。
时间
希望这能帮上忙,乔治
发布于 2011-07-05 15:30:46
根据这个职位的说法,SET_TIME是正确的权限,但它只能在有根的手机上工作。
https://stackoverflow.com/questions/6584772
复制相似问题