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

时间:2011-12-05 22:19:01

标签: android

我想创建一个受密码保护的Android应用程序。任务启动时或前台任务时应询问密码。

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

所以行为应该是每当用户启动/返回我的应用程序时,应该询问密码,除非他从我最初发送给他的相机返回时的情况。

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

1)在将用户发送到相机时设置标志(flagA),然后在服务中继续检查前景应用是否是我们的应用。当前台应用程序不是我们的应用程序时,然后设置另一个标志(flagB)以指示我们的应用程序已转到后台。当前景中的应用程序再次成为我们的应用程序时,请检查flagA是否为false(我们没有将他发送到相机)并且flagB为true(应用程序来自后台)。然后显示密码屏幕

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

由于

2 个答案:

答案 0 :(得分:1)

想到了一些想法。 这只是我的一个简单的想法所以它可能没有用,但考虑到你没有告诉我们你已经尝试/想到的东西,我们没有太多的东西可以用。

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

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

根据您提供给我们的信息量,情况并没有好转,但它应该让您知道如何开始。

答案 1 :(得分:0)

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

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

此解决方案不是万无一失的,但在大多数情况下都适用。