Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从一个Android应用程序控制另一个Android应用程序的UI_Android_Root_Sandbox_Kiosk Mode - Fatal编程技术网

从一个Android应用程序控制另一个Android应用程序的UI

从一个Android应用程序控制另一个Android应用程序的UI,android,root,sandbox,kiosk-mode,Android,Root,Sandbox,Kiosk Mode,我有一个应用程序作为服务和广播接收器运行,具有root和设备管理员访问权限。我需要该应用程序能够控制任何其他可能正在运行的应用程序的UI。例如,当其他应用程序在前台运行时,我可能想隐藏系统导航栏或覆盖home按钮。这是为了沙箱用户 有人能建议我怎么做这样的事吗?在你自己的应用程序中隐藏导航栏很容易,当然覆盖按钮也没什么大不了的,但我需要一个应用程序能够为其他应用程序做到这一点 我在考虑UI自动机是否能帮上忙 我的应用程序沙盒和其他将运行的应用程序都是我的,它们都具有根访问权限。如果需要的话,我还

我有一个应用程序作为服务和广播接收器运行,具有root和设备管理员访问权限。我需要该应用程序能够控制任何其他可能正在运行的应用程序的UI。例如,当其他应用程序在前台运行时,我可能想隐藏系统导航栏或覆盖home按钮。这是为了沙箱用户

有人能建议我怎么做这样的事吗?在你自己的应用程序中隐藏导航栏很容易,当然覆盖按钮也没什么大不了的,但我需要一个应用程序能够为其他应用程序做到这一点

我在考虑UI自动机是否能帮上忙

我的应用程序沙盒和其他将运行的应用程序都是我的,它们都具有根访问权限。如果需要的话,我还可以在每台设备上构建自己的定制版本的Android操作系统


-谢谢

好的,这需要分两步完成

从您的服务创建广播 在UI应用程序中注册广播接收器以收听广播 为您服务,请这样做

Intent intent = new Intent();
intent.setAction(BROADCAST_ACTION);
sendBroadcast(Intent);
在您的主要活动中,使用

registerReceiver(<receiver instance>, BROADCAST_ACTION)

嗨,如果我采用这种方法,那么所有的UI隐藏/沙盒代码都将在主应用程序中,因此它必须在每个需要沙盒的应用程序中,这将是代码的重复。我希望该服务修改用户界面,因为理想情况下,无论我们选择在所有设备上运行哪个应用程序供用户使用,都会在所有设备上运行相同的服务。抱歉,我错过了问题中的any一词!我需要考虑一下
BroadcastReceiver receiver;
receiver = new BroadcastReceiver() {
    public void onReceive(Context c, Intent i) {
        //Modify the UI, in this case hide the dialog box.
    }
}