2012-07-14 138 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