所以基于https://developer.amazon.com/help/faq.html#KindleFire Kindle Fire 不支持 disable_keyguard 权限。
但我希望我的应用程序既可以在普通的 android 设备上运行,也可以在 kindle 上运行。这个问题有什么简单的解决方案吗?
这个权限是必须的,所以我不能只是从应用程序中删除它。
所以基于https://developer.amazon.com/help/faq.html#KindleFire Kindle Fire 不支持 disable_keyguard 权限。
但我希望我的应用程序既可以在普通的 android 设备上运行,也可以在 kindle 上运行。这个问题有什么简单的解决方案吗?
这个权限是必须的,所以我不能只是从应用程序中删除它。
你可以用 try catch 包围 disableKeyguard() 调用并在那里执行一些额外的逻辑。
KeyguardManager kgm = (KeyguardManager) Application.getSystemService(Application.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock kl = kgm.newKeyguardLock(VIEW_LOG_TAG);
try{
kl.disableKeyguard();
}
catch (SecurityException e)
{
//kindle code goes here
}
不确定您的应用程序的上下文是什么,但是唤醒锁怎么样? 不过,这可能会花费您一些电池寿命。
您将需要两个版本的应用程序,一个用于 Fire,一个用于现有目标。您可以通过将大部分逻辑放入一个 Android 库项目中来实现这一点,该项目在两个常规 Android 项目之间共享(一个具有 keyguard 功能,一个没有)。