Kindle Fire和disable_keyguard权限

3
根据https://developer.amazon.com/help/faq.html#KindleFire,Kindle Fire不支持disable_keyguard权限。
但是我希望我的应用程序可以在普通的Android设备和Kindle上运行。有没有简单的解决方案?
而且这个权限是必须的,所以我不能从应用程序中删除它。

你为什么要禁用键盘锁? - CommonsWare
如果我的应用程序在手机进入“睡眠”状态时仍然处于活动状态,我希望用户只需按下电源键即可立即回到应用程序,而无需解锁手机。 - Gapipro
3个回答

3
你可以尝试使用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
}

0

我不太确定你的应用程序的上下文是什么,但是考虑一下唤醒锁定怎么样?不过这可能会消耗一些电池寿命。


1
我也在使用唤醒锁和键盘锁的组合。 - Gapipro

0
你需要两个版本的应用程序,一个适用于Fire,另一个适用于现有目标。您可以通过将大部分逻辑放在Android库项目中,在两个常规Android项目之间共享(一个带有键盘锁定功能,一个没有)来实现此目的。

把一个应用程序分成两个独立的项目后,修复和升级不是很混乱吗? - Gapipro
1
@Gapipro:相比于单个项目,它是否更加复杂?是的。如果您不想承担这种复杂性,可以选择不支持Fire。或者,如果您不想承担这种复杂性,也可以选择放弃此功能。 - CommonsWare
如果这是唯一的方法,那就不值得了。有些人可能会这样做,但并不值得。 - Gapipro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接