如何创建一个密码保护的android应用程序



我想创建一个密码保护的android应用程序。当任务启动或出现在前台时,应该询问密码。

复杂的部分是我的应用程序可以调用设备内置的相机应用程序来拍摄照片/视频,所以我无法控制该活动。

所以行为应该是,每当用户开始/返回到我的应用程序时,应该询问密码,除了当他从我首先发送给他的相机返回的场景。

我有以下的想法,但没有一个能完全解决我的问题,我能想到的最好的一个是

1)在发送用户到相机时设置一个标志(flagA),然后在服务中不断检查前台应用是否为我们的应用。当前台应用不是我们的应用时,设置另一个标志(flagB)来指示我们的应用已进入后台。当前台的应用程序再次成为我们的应用程序时,检查flagA是否为假(我们没有将他发送到相机),flagB是否为真(应用程序来自后台)。然后显示密码界面

问题1)轮询间隔必须小,如3-4秒,以便快速检测前景。这会耗尽电池。

谢谢

我想到了一些想法。这只是我的一个快速的想法,所以它可能不是有用的,但考虑到你还没有告诉我们你已经尝试过/有什么想法,我们没有太多的去。

你将需要至少2个活动来处理整个密码的想法。首先,当你启动应用程序时,运行Activity a,这将要求输入密码(假设密码总是相同的)。如果密码是正确的->启动一个意图与活动B。如果密码不正确,请关闭应用程序。

在B中,为用户提供调用相机的选项。使用相机后,返回活动b

你给我们的信息并没有变得更好,但它应该给你一个如何开始的想法。

我已经部分解决了这个问题1)有一个静态长变量来跟踪onPause()和onResume()之间的时间。在正常的应用程序运行期间,这个时间不到1秒,但如果应用程序进入后台并进入前台,那么这个持续时间就会超过1秒。因此,在onResume()中,如果持续时间超过1秒,则显示密码屏幕。

2)为了处理相机问题,我有一个标志来检测我是否打开了相机,如果该标志被设置,那么不要在onResume()中要求密码。

此解决方案并非万无一失,但在大多数情况下都有效。

最新更新