最近刚在学习Android想开发一个短信保护功能的软件,当用户打开短信查看内容时首先要求输入密码,正确才能打开短信,在打开短信时怎么启动自己开发的Activity应用啊,网上说"打开短信的时候发出广播。去获取这个广播",打开短信回发出什么广播啊,求解?

解决方案 »

  1.   

    通过我对Launcher的了解, 在启动器界面启动一个APP时,是不会发生广播的。    不知道如下思路可行否:通过监听ActivityManager的最近任务列表(例如:每隔2s监听下)(ActivityManager.RunningTaskInfo),判断是否与检测的Activity的包名一样,即可启动我们给枷锁的那个Activity了。(腾讯管家,是这么做的,不知道它的具体实现方式是否也是这样)。
      

  2.   


    1楼正解,很多加密软件都是通过一个timer定时扫描topActivity判断包名类名来启动自己的activity。因为你进入一个app是不会发送广播的。当然定时扫描可能比较消耗内存,但是你也可以通过逻辑和代码进行优化。比如灭屏停止扫描,通话中停止扫描,等等。
      

  3.   

    http://blog.csdn.net/su1216/article/details/8078308