我正在编写类似于app protector的应用程序 - 它会提示用户在启动受保护的应用程序时对自己进行身份验证。由于Android没有提供在显式意图上使用BroadcastReceiver的方法,我通过监视logcat来检测应用程序启动。对于大多数应用程序,我正在倾听“开始活动......”之类的内容,然后将意图投射到我自己的身份验证活动中。
然而,当受保护的应用程序A通过另一个应用程序B启动时,似乎存在漏洞。应用程序A仅启动一次(因此在logcat中只有一个“正在启动的活动...”条目,并且如果我从我的活动切换到App B,它将重新路由到App A,这次,我将无法检测到它,因为logcat没有显示它的启动。
一个例子是软件包安装程序是受保护的应用程序,文件管理器在点击apk文件时启动软件包安装程序。虽然第一次调用我的身份验证活动,但如果我再次切换到文件管理器,它将自动显示包安装程序,这次我的应用程序没有检测到它。
我尝试了一些应用程序保护程序应用程序,如App Protector Lite和Smart App Protector,它们似乎没有这个问题。它们具有类似的权限 - GET_TASKS,READ_LOGS,RECEIVE_BOOT_COMPLETED和SYSTEM_ALERT_WINDOW。有谁知道可以做些什么来解决我的问题?
感谢。