我想尝试并实现此应用程序中提供的功能
也就是说,用户应该输入密码才能运行某些应用程序。我不确定该朝哪个方向前进。
我认为必须有服务在后台运行。如果发现任何新活动开始然后检查它是否受密码保护,如果是,那么它将显示安全屏幕。
这个解决方案可以帮助你。
提取它:
将活动上次暂停时的系统时间存储为长变量。
import android.app.Application;
public class MyApplication extends Application {
public long mLastPause;
@Override
public void onCreate() {
super.onCreate();
mLastPause = 0;
Log.w("Application","Launch");
}
}
在每个 onPause 方法中,我都会将此值更新为当前时间。
@Override
public void onPause() {
super.onPause();
((MyApplication)this.getApplication()).mLastPause = System.currentTimeMillis();
}
并在每个 onResume 中,将其与当前时间进行比较。如果经过一定时间(当前为 5 秒),则会显示我的密码提示。
@Override
public void onResume() {
super.onResume();
MyApplication app = ((MyApplication)act.getApplication());
if (System.currentTimeMillis() - app.mLastPause > 5000) {
// If more than 5 seconds since last pause, prompt for password
}
}
在库存设备上不可能。您能做的最好的事情是编写一个需要密码才能运行某些应用程序的自定义启动器。用户始终可以将启动器更改为库存启动器,因此作为一项安全功能并没有真正有用。如果您想阻止您的(年幼的)孩子访问您的 Gmail 等,可能会起作用。有一些技巧使它看起来可行,但没有什么是可靠的。