Android双屏异显以及原理分析

本文详细介绍了如何在Android设备上通过Presentation API开启和控制模拟副屏,包括设置权限、检查权限、自定义Presentation以及使用场景,如车载智能座舱和多屏交互。

副屏显示

android设备可以开启模拟副屏,通过Presentation实现模拟副屏的画面绘制。
进入设置的开发者选项,找到绘图-模拟辅助显示设备(英文为Simulate secondary displays)。
在这里插入图片描述
选择辅助设备的分辨率。
在这里插入图片描述
需要申请显示在其他应用上层的权限,

<uses-permission android:name= "android.permission.SYSTEM_ALERT_WINDOW" />

跳转设置以授权:

        if (!Settings.canDrawOverlays(this)) {
   
   
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse(
                    "package:" + getPackageName()));
            startActivityForResult(intent, 520);
        }

接着初始化Presentation,代码如下

private void initPresentation() {
   
   
        Display[] displays =
                mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);
        if (displays != null && displays.length > 0) {
   
   
            Display display = displays[0];
            mCustomPresentation = new CustomPresentation(this, display);
            mCustomPresentation.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
            mCustomPresentation.setOnDismissListener(new DialogInterface.OnDismissListener() {
   
   
                @Override
                public void onDismiss(DialogInterface dialogInterface) {
   
   
                    Log.d(TAG, "onDismiss");
                }
            });
            mCustomPresentation.show();
        } else {
   
   
            Toast.makeText(this, "无副屏", Toast.LENGTH_SHORT).show();
        }
    }

完整代码如下:

package com.example.secondarydisplays;

import android.content.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言并肃

感谢大哥支持!您的鼓励是我动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值