【问题标题】:Kindle Fire and disable_keyguard permissionKindle Fire 和 disable_keyguard 权限
【发布时间】:2012-03-22 16:17:25
【问题描述】:

所以基于https://developer.amazon.com/help/faq.html#KindleFire Kindle Fire 不支持 disable_keyguard 权限。

但我希望我的应用程序既可以在普通安卓设备上运行,也可以在 kindle 上运行。这个问题有什么简单的解决方案吗?

而且这个权限是必须的,所以我不能只是从应用程序中删除它。

【问题讨论】:

  • 你为什么要禁用键盘保护?
  • 如果我的应用程序在手机进入“睡眠”状态时处于活动状态,我希望该用户只需按下电源键,他就可以立即再次进入应用程序而无需解锁手机。

标签: android permissions kindle-fire


【解决方案1】:

你可以用 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
}

【讨论】:

    【解决方案2】:

    不太确定您的应用程序的上下文是什么,但Wake Lock? 怎么样,但这可能会花费您一些电池寿命。

    【讨论】:

    • 我也将唤醒锁与键盘锁结合使用。
    【解决方案3】:

    您需要两个版本的应用,一个用于 Fire,一个用于现有目标。您可以通过将大部分逻辑放入一个 Android 库项目中来实现这一点,该项目在两个常规 Android 项目之间共享(一个具有 keyguard 功能,一个没有)。

    【讨论】:

    • 将应用程序拆分为 2 个单独的项目后,修复和升级不是一团糟吗?
    • @Gapipro:是不是比一个项目复杂一些?是的。如果您不想承担这种复杂性,欢迎您不支持 Fire。或者,如果您不想承担这种复杂性,欢迎您放弃此功能。
    • 有些是这样的。如果这是唯一的方法,那根本不值得。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多