项目要求增加程序锁功能。要预研一下。
网上反编了比较流行的程序锁,了解到大概方向:
1 后台服务不断监视显示在前台的应用。
2 当是需要锁住的应用,启动程序锁密码页面。
3 密码成功则关闭程序锁密码页面,失败则调用关闭后台的接口,关闭应用,
google了下如何关闭第三方应用。
原来,只要被关闭第三方应用不再前台,己可以利用ActivityManager.restartPackage(),killBackgroundProcesses()关闭。
这样,程序锁功能基本就可以实现了。
项目另外要求,被锁住的程序希望在桌面或者其他任何地方都不会被显示。
呃,这个看来比较麻烦。
应用列表的数据是android系统自身管理的。查系统源码发现,android中获取应用列表是通过扫描所有apk包路径得来的。
那初步设想,这个“隐藏被锁应用”的功能,只有在root后,改变apk包的名称或者路径,以避免被扫描到来实现了。
但是这么做还有个后患,将应用改回去后,可能会有数据目录归属权限的问题,,待研究。。