2012-01-04 58 views
0

由于API等级8 PowerManager has contained a reboot()方法。我的Android应用程序可以使用PowerManager的重启方法吗?

我已经添加了所需的权限,以我的表现,取得的PowerManager的对象,然后调用

pm.reboot(); 

这导致强制关闭与该堆栈跟踪

01-04 16:58 :35.847:错误/ AndroidRuntime(2945):java.lang.SecurityException:用户10060或当前进程都没有android.permission.REBOOT。

有谁知道这个PowerManager.reboot()方法是否应该可用于应用程序?由于它在文档中,我有点猜测可以使用。

回答

3

有谁知道这个PowerManager.reboot()方法是否应该可用于应用程序?

安装到系统分区作为固件一部分的SDK应用程序可以保存REBOOT权限。普通的SDK应用程序不能。

+0

是否有任何方便的地方可以找到具体哪些API可用于标准应用程序的哪些部分?开发人员文档没有提及它只是在方法或权限上的系统。这样的列表确实有助于避免在探索某些API过程中涉及的一些试验和错误 – FoamyGuy 2012-01-05 01:15:15

+2

@Tim:文档通常很好地表明需要执行某些操作所需的权限。该文档没有描述任何地方持有许可所需的内容。要做到这一点,你需要在源代码中检查'frameworks/base/core/res/AndroidManifest.xml'。每个权限都列出了一个'android:protectionLevel'属性。 '签名'表示应用程序必须使用固件的签名密钥进行签名。 'signatureOrSystem'还允许应用程序正常签名,但驻留在'/ mnt/system'中。任何应用程序都可以容纳“正常”和“危险”应用程序。 – CommonsWare 2012-01-05 12:33:10

+1

完美,谢谢。 – FoamyGuy 2012-01-05 14:07:08

相关问题