Android系统应用程序DEVICE_POWER权限错误

时间:2011-09-21 23:05:14

标签: android permissions android-manifest

我尝试使用goToSleep()方法让手机深度睡眠。 程序安装到/ system / app目录,所以Android系统信息说,它是一个系统应用程序,但如果我尝试调用goToSleep()我得到此错误

用户10085和当前进程都没有android.permission.DEVICE_POWER。

代码抽样:

            IPowerManager mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));

            long time = SystemClock.uptimeMillis() + 1000;
            try {
                mPowerManager.goToSleep(time);
            } catch (RemoteException e) {
                 Toast.makeText(getApplicationContext(), "error: " + e.toString(), Toast.LENGTH_LONG).show();
                e.printStackTrace();
            }

的AndroidManifest.xml

<permission android:name="android.permission.DEVICE_POWER"/> 
<uses-permission android:name="android.permission.DEVICE_POWER" />
<permission android:name="android.permission.REBOOT"/>
<uses-permission android:name="android.permission.REBOOT"/>

据我了解,如果我运行系统应用程序而不是我可以访问所有android隐藏或系统功能,或者我错了?

我尝试将应用程序作为系统应用程序运行的事情:

  1. 将文件复制到/ system / app
  2. chown 0:0
  3. chmod 4755
  4. chmod ugo + s
  5. 也许其他人已经遇到过这个问题。任何建议都会有所帮助

3 个答案:

答案 0 :(得分:2)

通过查看源代码我看到你需要signature permission,我认为仅仅是一个系统应用程序是不够的,你需要使用相同的rom证书签名,/system/framework/android/framework-res.apk < / p>

答案 1 :(得分:2)

您的第三方应用程序无法访问DEVICE_POWER权限。

public static final String DEVICE_POWER 在API级别1中添加

允许对电源管理进行低级访问。

不适用于第三方应用程序。 常数值:&#34; android.permission.DEVICE_POWER&#34;

答案 2 :(得分:0)

只需删除上面清单中的第一行和第三行,就可以了。 你应该打电话......而不是.... 你的代码看起来很好。