在Android中,您可以进入系统设置并启用屏幕锁定,从而可以要求输入密码,PIN或其他一些解锁屏幕的方法。如果您将设备置于待机模式或在屏幕变暗后进入待机模式,通常会使用此功能。
我想要做的是在我的应用中重新使用此屏幕锁定,但阻止访问特定活动。我有一个按钮,当按下时会显示屏幕锁定活动,用户必须输入其PIN。如果他们正确输入,我就让他们可以访问活动,否则他们就无法使用它。
在这种情况下是否可以重复使用屏幕锁定活动?如果是这样,我需要什么API?如果它适用于Android 2.3
会很好编辑:
有些人假设我的应用程序需要PIN或密码才能运行。事实并非如此。想要保护我的应用中的某些数据的用户可以要求其拥有PIN或密码才能查看。但是,当系统已有密码/ PIN活动或对话框时,为什么要编写自己的密码/ PIN活动。
答案 0 :(得分:0)
这种安全性仅适用于内置系统组件,例如设置应用程序。第三方应用程序无法请求显示密码对话框,只有在用户输入正确的代码时才能继续工作。
此外,相当数量的用户根本没有设备上的密码。
答案 1 :(得分:0)
您可以查看KeyguardManager和KeyguardManager.KeyguardLock。从API级别13开始,这个功能的工作方式似乎有所改变,但我对这个主题一般不熟悉,所以如果你计划走这条路,你将不得不进行调查。
您最好在应用中实现自包含的内容。可以很容易地覆盖屏幕(可能使用另一个Activity)或以编程方式隐藏UI元素并显示带有密码输入字段的备用UI。
答案 2 :(得分:-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" />