我尝试使用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隐藏或系统功能,或者我错了?
我尝试将应用程序作为系统应用程序运行的事情:
也许其他人已经遇到过这个问题。任何建议都会有所帮助
答案 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)
只需删除上面清单中的第一行和第三行,就可以了。 你应该打电话......而不是.... 你的代码看起来很好。