13

我想SystemClock.setCurrentTimeMillis设置系统时钟,但遇到了以下错误:是否可以从我的Android应用程序设置系统日期时间?

"Unable to open alarm driver: Permission denied" 

下面是setCurrentMillis API从Android开发者网站上的说明:

public static boolean setCurrentTimeMillis (long millis) 

自:API等级1设置当前墙壁时间,以毫秒为单位。需要调用进程具有适当的权限。

如果时钟成功设置为指定时间,则返回 。

所以,应用程序需要获得设置时间的权限。 在AndroidManisfest.xml我插入了android.permission.SET_TIME但我有相同的消息错误。

我曾尝试在互联网上找到各种解决方案,似乎是不可能的,即使在哪里android.permission.SET_TIME引入升级Froyo(Android 2.2的)设置系统时间没有根,普通的应用程序无法获得此权限,因为的/ dev /报警文件有664 permission。因此,解决方案是更改666的许可权,但需要使用固定设备,并且侵入性太强,无法成为解决方案。

我想为我的公司创建一个应用程序来同步不同系统之间的数据,并且必须具有同步时钟。

预先感谢您为您的意愿

日食

+0

“我想为我的公司创建一个应用程序来同步不同系统之间的数据,并且对于同步时钟非常重要。” - 如果您的服务器依赖于客户端提供的时间,请修复服务器,因为它有问题。 – CommonsWare

+0

嗨,问题是如果用户在他的设备中更改系统日期和时间。服务器时钟正常。 Tnx – Eclipses

+0

你误会了。您的服务器不应该依赖客户的日期和时间准确。只有傻瓜才会写一个依赖来自客户端的精确时间数据的服务器。 – CommonsWare

回答

3

this post,SET_TIME是正确的权限,但它只会有根的手机上运行。

+0

您确认我的解决方案。你认为这可能是一个错误,是过于侵入性的解决方案需要根植设备? – Eclipses

+0

那么有很多应用程序需要固定电话。这实际上取决于您打算如何处理应用程序以及谁将使用它。你不能要求所有'正常'的人来根植他们的手机。 – Manuel

+0

当然,并不是每个人都会为设置系统时间的小任务创建根目录。我只是想确认这是正确的许可,但这项任务似乎不可行。 – adamcodes

11

日食,

我做了相当多的关于这个检查你的,发现一个开放的车票与谷歌解决这个问题。从2009年11月8日开始,标签一直是开放的。基本上只有系统可以通过许可改变时间。根据以下链接的评论,开发人员进行了一些研究,并注意到,当权限SET_TIME创建时,它没有在操作系统中获得适当的保护级别(signature或System v.s危险)。因此它不会做它应该做的事情。

http://code.google.com/p/android/issues/detail?id=4581

这里有权限的用户可以有不同的保护级别的说明。目前根据上面的开发者列举,当SET_TIME具有“签名或系统”时,它应该具有“危险”。

http://developer.android.com/guide/topics/manifest/permission-element.html#plevel

总之,目前还没有办法以编程方式改变的时候没有生根手机。

最后一点需要注意的是,如果你想使用自定义ROM,那么Cyanogenmod也有一张开放票来将其能力添加到ROM中。

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=CyanogenMod+SET_TIME

希望这有助于一些, 乔治

+0

谢谢乔治,在提出这个问题之前,我做了所有必要的研究,并且已经找到了票。我有一种感觉,这个问题是所有人都知道的,这是由于一个错误,但没有人努力解决它。直到其最新版本的SDK。我希望通过这个渠道能够将问题集中在Google上。当我在平台上开发时,我希望能够做到一切。 – Eclipses

+1

日食。感谢您的反馈。 IT绝对是需要解决的问题。 –

+1

这不是一个错误,它按预期工作。权限被设置为signatureOrSystem,因为这是所期望的,而不是因为它是一个错误。 – hackbod

1

我们已经做到了。只要您可以获得SET_TIME权限,这并不是什么大问题。看我的answer to a similar question

关于其他答案,说明不可能没有root的电话,那么这只是为了获得许可。有关此信息,请参阅herehere

相关问题