我有一个应用程序作为服务和广播接收器运行,具有root和设备管理员访问权限。我需要该应用程序才能控制可能正在运行的任何其他应用程序的UI。例如,我可能想隐藏系统导航栏或覆盖主页按钮,而其他应用程序在前台运行。这是沙盒用户。
有谁能建议我怎么做这样的事情?在您自己的应用程序中隐藏导航栏很容易,当然覆盖按钮也没什么大不了的,但我需要一个应用程序才能为其他应用程序执行此操作。
我正在考虑UI Automator是否可以提供帮助。
我的应用程序(沙箱和将要运行的其他应用程序)是我的,他们都将拥有root权限。如果需要,我还可以在每台设备上构建自己的Android操作系统版本。
-Thanks
答案 0 :(得分:0)
好的,这需要分两个步骤完成,
在您的服务中执行此操作
Intent intent = new Intent();
intent.setAction(BROADCAST_ACTION);
sendBroadcast(Intent);
在mainActivity中,使用
registerReceiver(<receiver instance>, BROADCAST_ACTION)
在onStart或onCreate方法中。
这将设置你的mainActivity来收听广播,接下来你需要定义你在上面的注册调用中的广播接收器。
BroadcastReceiver receiver;
receiver = new BroadcastReceiver() {
public void onReceive(Context c, Intent i) {
//Modify the UI, in this case hide the dialog box.
}
}