2012-07-14 85 views
2

我正試圖編寫一個簡單的android應用程序,關閉我的手機屏幕。當我運行這個應用程序時,我得到安全異常:權限拒絕應用程序需要android.permission.DEVICE_POWER。我知道這是一個受保護的權限,但我的手機已經植根。我該如何指定我可以使用此權限?我已經嘗試聲明DEVICE_ADMIN permssion以及DEVICE_POWER權限,但它仍然不起作用。安全例外:DEVICE_POWER的權限拒絕

回答

2

生根可能會讓你規避或修改android安全模型,但它並不一定意味着你獲得了執行它的android API的特權。您通常無法以root身份運行應用程序本身,而以助手身份啓動的助手可執行文件中的代碼在與Android API進行交互時會遇到相當大的困難。

你試圖做的事情可能不是一個好主意。但是,如果你真的想要這樣做,你需要安裝自己的Android版本,以便你有一個(自己生成的)密鑰與你用來簽署平臺的密鑰匹配,然後你可以用它來簽署你的應用程序,或者嘗試在系統分區上安裝應用程序。

+0

我同意,你可以提供一些關於簽字的更多信息嗎?像這樣簽署雖然限制了該特定版本的應用程序的權利?如果我按照原樣安裝到系統分區(沒有任何更改),它會工作還是應該對系統中的某些更改進行更改? – codejammer 2012-07-15 04:40:47

+0

我在我的系統分區中安裝了應用程序,仍然得到了E/AndroidRuntime(1226):java.lang.SecurityException:用戶10008和當前進程都沒有android.permission.DEVICE_POWER。 沒有辦法沒有自定義android構建來做到這一點? – codejammer 2012-07-29 06:36:34

0

如果您只想關閉屏幕,那麼您爲什麼不使用PowerManager?根據文檔,功能goToSleep()將強制設備進入睡眠狀態。

+0

我正在使用電源管理員去睡覺。使用這會引發安全異常 – codejammer 2012-07-15 04:36:02