【问题标题】:Android authentication screen on app wake应用唤醒时的 Android 身份验证屏幕
【发布时间】:2017-09-27 07:34:17
【问题描述】:

我想知道如何制作每次打开应用程序时都会打开的身份验证屏幕(在本例中为 4 位数代码)。我在之前的 iOS 项目中通过显示 AppDelegate 的模式窗口实现了这一点,我想知道在 Android 上执行此操作的最佳方法是什么。我无法在任何地方找到有关此特定案例的信息。

是否有某种与 Android 中的 AppDelegate 等价的东西?以及如何防止用户通过点击android默认的后退按钮来跳过屏幕?

【问题讨论】:

  • 你想通过实体设备的代码只保护你的应用程序吗?答案取决于此。仅适用于您的应用,只需在您的活动中覆盖 onResume 方法即可。
  • 只有应用程序。我是否需要在我的应用的每个活动中都进行覆盖?
  • 啊,现在清楚了。您应该在主要(入门级)活动中执行此操作。或者,如果您的应用程序可能开始使用许多活动,请使用应用程序类的 onActivityResumed。这是一个示例:stackoverflow.com/questions/28691986/…
  • 嘿,看起来你的问题与我之前评论中的示例重复。
  • @Miller 是的,应该这样做,非常感谢!我不知道如何 +1 或将 cmets 标记为答案,但这很可能是 ^.

标签: android authentication logging login


【解决方案1】:

我想到了两个解决方案:

  1. 您可以搜索原生解决方案 - 有一个: https://developer.android.com/reference/android/app/KeyguardManager.html 方法:createConfirmDeviceCredentialIntent 但这很丑陋,并且可以使用 21+ api

  2. 您必须实施自己的解决方案。为了避免点击设备上的后退按钮,您必须在活动中覆盖 onBackPressed 方法

【讨论】:

  • 就后退按钮而言看起来不错,但你知道我如何触发意图吗?
  • 'KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); km.createConfirmDeviceCredentialIntent("exampleTitle", "exampleDexription");'这样,您将要求输入电话设置中使用的密码。您可以在 onCreate 或 onResume 方法中运行它。这取决于您想要达到的目标。您可以在此处阅读有关生命周期的信息:developer.android.com/guide/components/activities/…
【解决方案2】:

@Miller回答

啊,现在很清楚了。您应该在主要(入门级)活动中执行此操作。或者,如果您的应用程序可能开始使用许多活动,请使用应用程序类的 onActivityResumed。这是一个示例:stackoverflow.com/questions/28691986/… – Miller

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2012-11-29
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多