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

相關問題