美文网首页
android--开机自启动分屏

android--开机自启动分屏

作者: 请叫我大帅666 | 来源:发表于2022-09-08 21:39 被阅读0次
/*
    *   同时启动分屏两个软件
    * */
    private void launchDoubleApp() {

        Intent intent = new Intent();
    
        // com.xxx.xx 包名
        // com.xxx.xx.xx.xxxxxxx  类名
        intent.setComponent(new ComponentName("com.xxx.xx", "com.xxx.xx.ui.LauncherUI"));
        intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);

        ActivityOptions activityOptions = ActivityOptions.makeBasic();
//            activityOptions.setLaunchWindowingMode(3);
        try {
            Method method = ActivityOptions.class.getMethod("setLaunchWindowingMode", int.class);
            // 这里分屏设置为 3,目前测试其他数字不能自动分屏
            method.invoke(activityOptions, 3);
            Log.i("dzy","start freeform activity window mode 5");
        } catch (Exception e) {
            e.printStackTrace();
        }

        Bundle bundle = activityOptions.toBundle();
        startActivity(intent,bundle);

    }

如果你要启动的是别人的应用,不知道包名和类名

先进入

adb shell

再运行下面命令,这条命令只能dump到你当前运行的App,当前所在类类名

dumpsys activity activities|grep Hist
图片.png

使用命令切换分屏顺序
进入adb shell

 am start-activity --windowingMode 3 com.org.xxx.xxxxx/.MainActivity
 am start-activity --windowingMode 4 com.org.xxx.xxxxx/.MainActivity

如果未出现上下交互,就退出后台应用,重新运行命令

上面这种操作,在重新开机后就会失效

下面这种操作在重启后仍可以(但测试过程中不稳定)

try {
            Intent intent1 = new Intent();
            intent1.setComponent(new ComponentName("com.org.xxx.xxx", "com.org.xxx.xxx.MainActivity"));
            intent1.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);
            ActivityOptions activityOptions1 = ActivityOptions.makeBasic();
            try {
                Method method = ActivityOptions.class.getMethod("setLaunchWindowingMode", int.class);
                method.invoke(activityOptions1, 3);
            } catch (Exception e) {
                e.printStackTrace();
            }
            startActivity(intent1,activityOptions1.toBundle());


            Intent intent = new Intent();
            intent.setComponent(new ComponentName("com.xxx.xx", "com.xxx.xx.ui.LauncherUI"));
//            intent.setComponent(new ComponentName("com.xxx.xx", "com.xxx.xx.plugin.appbrand.ui.AppBrandUI"));
            intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);

            ActivityOptions activityOptions = ActivityOptions.makeBasic();
//            activityOptions.setLaunchWindowingMode(3);
            try {
                Method method = ActivityOptions.class.getMethod("setLaunchWindowingMode", int.class);
                method.invoke(activityOptions, 4);
            } catch (Exception e) {
                e.printStackTrace();
            }
            startActivity(intent,activityOptions.toBundle());
        } catch (Exception e) {
            e.printStackTrace();
        }

相关文章

  • android--开机自启动分屏

    如果你要启动的是别人的应用,不知道包名和类名 先进入 再运行下面命令,这条命令只能dump到你当前运行的App,当...

  • win10自启动管理

    虽然开机自启动程序会影响开机速度,不过将一些必用软件设置生开机自启动也是很爽的。 添加开机自启动 WIN键 + R...

  • App开机自启动

    App开机自启动 通过开机广播来实现自启动 定义开机广播 在AndroidManifest.xml注册BootCo...

  • Windows设置软件开机自启动

    有时候我们需要手动为某些软件设置开机自启动权限,或者手动取消软件开机自启动权限。 取消开机自启动权限: 1. Wi...

  • 云计算基本操作

    1、开机自启动 [root@oldboy data]# virsh autostart web01关闭开机自启动[...

  • 2019-07-18 ubuntu18.04 开机优化

    开机自启动服务 systemd-analyze blame 可以查看开机自启动服务 sudo systemctl ...

  • Inno Setup 设置软件开机自启动

    Inno SetUp 开机自启动: 方法1. 不修改注册表,询问用户是否开机自启动,并将exe文件添加到开机文件夹...

  • gentoo 开机启动命令

    gentoo 设置服务开机自启动

  • update-rc.d

    问题描述: ubuntu某个服务开机自启动,我想关闭这个自启动。之前用service指令只能关闭当前,下次开机还是...

  • 环境变量故障案列

    1.tomcat程序 开机自启动 2.STAR 原则后的故障: S:让tomcat 开机自启动,写入/etc/rc...

网友评论

      本文标题:android--开机自启动分屏

      本文链接:https://www.haomeiwen.com/subject/vwoonrtx.html