如何在android中实现app locker?

Ian*_*Ian 20 android locking

我对我找到的任何Android应用程序更衣程序不满意,并且我想创建自己的程序,但我无法弄清楚如何实现实际的锁定.如何为Android实施app locker?

有两个问题:

  1. 检测Intent,通常来自发射器调用startActivity()或启动市场应用程序的广告(我不是在谈论广播意图 - 我需要处理显式的Activity Intents).

    • 我见过的更衣室应用程序的权限都有"读取系统日志文件"和/或"检索正在运行的应用程序",这表明他们可能会使用轮询来查找应用程序启动.我想我可以这样做,但如果可能的话,我想找到更好的解决方案.
  2. 防止锁定的应用程序处理意图.在输入密码之前,我宁愿不允许锁定的应用程序运行,因为它无法分辨启动时它可能会做什么.

    • 在运行我当前的应用程序锁定器时,logcat首先显示"ActivityManager:Starting activity",其中包含针对锁定应用程序的Intent,然后再显示应用程序锁定器的Intent,两者之间没有任何内容(相隔10-20ms).如果我输入正确的密码,那么我会看到"ActivityManager:moveTaskToBack".
    • 我已经尝试了一个测试应用程序,该应用程序演示了如果应用程序被锁定且我没有输入正确的密码,使用我当前的应用程序锁定器,不会调用任何活动回调.所以它似乎阻止了应用程序启动(但我不知道如何).
    • 我可以使用ActivityManager.killBackgroundProcesses()来停止应用程序,但我无法保证应用程序在被"杀死"时尚未开始运行.
    • 我可能能够使用PackageManager.setApplicationEnabledSetting()来阻止应用程序被实例化,但我认为这不会处理已经运行的应用程序(不应该允许处理新的Intent或来到前景).我或许可以使用killBackgroundProcesses()来停止所有正在运行的锁定进程,因此必须重新实例化它们.但我不喜欢这种方法,因为其他应用程序可能会搞乱启用设置并打败锁定.
    • 最好的情况是,系统会将每个Intent发送到我的应用程序进行检查,并允许我停止或让它通过,但我很确定这是不可能的(至少,不是明确的意图从启动器启动活动).

有谁知道app locker应用程序是如何实现的,或者对如何实现它有任何明智的想法?

Jul*_*ian 1

我会研究生命周期。一旦有问题的应用程序开始加载,该包中的一些活动将被添加到最前面的活动中。

扫描前沿活动的变化可能会起到作用。

http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle