0

在 Android 中,您可以转到系统设置并启用屏幕锁定,您可以要求输入密码、PIN 或其他一些解锁屏幕的方法。如果您将设备置于待机模式或在屏幕变暗后进入待机模式,通常会使用此功能。

我想做的是在我的应用程序中重新使用此屏幕锁定,但要防止访问特定活动。我会有一个按钮,按下该按钮会调出用户必须输入其 PIN 码的屏幕锁定活动。如果他们输入正确,我就让他们访问该活动,否则他们无法使用它。

在这种情况下是否可以重新使用屏幕锁定活动?如果是这样,我需要什么 API?如果它在Android 2.3上运行会很好

编辑:

你们中的一些人假设我的应用程序需要 PIN 或密码才能运行。事实并非如此。想要保护我的应用程序中某些数据的用户可以要求它具有 PIN 或密码才能查看它。但是,当系统已经有一个密码/PIN 活动或对话框时,为什么还要编写我自己的密码/PIN 活动或对话框。

4

3 回答 3

0

这种安全性仅适用于内置系统组件,例如设置应用程序。第三方应用程序无法请求显示密码对话框,只有在用户输入正确密码后才能继续工作。

此外,相当数量的用户在他们的设备上根本没有密码。

于 2013-05-11T05:37:54.297 回答
0

您可以查看KeyguardManagerKeyguardManager.KeyguardLock。从 API 级别 13 开始,此功能的工作方式似乎发生了变化,但我一般不熟悉该主题,因此如果您打算走这条路线,则必须对此进行调查。

你可能最好在你的应用程序中实现一些自包含的东西。覆盖屏幕(可能使用另一个 Activity)或以编程方式隐藏 UI 元素并显示带有密码输入字段或其他内容的备用 UI 非常容易。

于 2013-05-11T05:42:54.727 回答
-1

您可以使用Android 2.2本身的屏幕锁定功能。因此,它可以轻松地在2.3中工作。使用此功能的方法基本上可以通过两种方式完成。

第一个是。

有两种方法可以锁定屏幕:

   PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);


    manager.goToSleep(int amountOfTime);

第二个是

     PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,Your        Tag");
      wl.acquire();
     wl.release();

也需要许可。也就是说

  <uses-permission android:name="android.permission.WAKE_LOCK" />
于 2013-05-11T05:43:11.497 回答