美文网首页
安卓双屏异显Presentation

安卓双屏异显Presentation

作者: 初见soulmate | 来源:发表于2021-06-10 14:27 被阅读0次

主页代码:

 override fun onCreate(savedInstanceState: Bundle?) {
        log("====MainActivity=====", "onCreate")
        super.onCreate(savedInstanceState)
        ...
        setContentView(contentView)
        addSecondScreen()
        ...
    }

添加副屏

 /**
     * 添加副屏
     */
    private fun addSecondScreen() {
        if (mPresentation == null) {
            val mDisplayManager =
                this@MainActivity.getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
            val displays = mDisplayManager.displays //得到显示器数组
            if (displays.size > 1) {
                mPresentation = DifferentDisplay(applicationContext, displays[1]) //displays[1]是副屏
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    mPresentation?.window?.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
                } else {
                    mPresentation?.window?.setType(WindowManager.LayoutParams.TYPE_PHONE)
                }
            }
        }
        if (mPresentation?.isShowing == false) {
            try {
                mPresentation?.show()
                isPresentationOn = true
            } catch (e: Exception) {
                isPresentationOn = false
                e.printStackTrace()
                AppUtils.goToSettings(this)
                toast("请开启[允许出现在其他应用上]权限!")
                Process.killProcess(Process.myPid())
            }

        }
    }

添加权限

   /**
     * 去当前应用的设置页面开启[允许出现在其他应用上]权限的权限
     */
    fun goToSettings(context: Context?) {
        try {
            val intent = Intent(
                Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                Uri.parse("package:" + context?.packageName)
            )
            context?.startActivity(intent)
        } catch (e: Exception) {
        }
    }

副屏页面

open class DifferentDisplay(context: Context, display: Display) : Presentation(context, display) {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(SecondScreenView(context))
    }
}

ps:
单屏设备开启异显调试方式:开发者模式>>>模拟辅助显示设备>>>选择需要的分辨率

相关文章

  • 安卓双屏异显Presentation

    主页代码: 添加副屏 添加权限 副屏页面 ps:单屏设备开启异显调试方式:开发者模式>>>模拟辅助显示设备>>>选...

  • Android 双屏显示分析

    双屏异显 系统提供了Presentation类,可以实现在两块屏幕上同时显示不同的内容;Presentation是...

  • Presentation双屏异显简述

    0.前言 Android 从4.2开始支持双屏显示,请确保minSdkVersion >= 17 Android ...

  • 安卓系统双屏异显技术的实现

    一.技术的背景 随着电梯广告传媒行业的飞速发展,双屏广告机应运而生,客户可以根据自己的需求,制作两个屏幕的内容,分...

  • Android双屏异显

    在Android4.2开始支持WiFi Display,此时Android上面就有了Presentation这个类...

  • Android双屏异显

    和你一起终身学习,这里是程序员 Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、设置Simu...

  • Android9 双屏异显

    双屏异显的三种方式 1、通过adb命令将app启动在指定的屏幕 adb shell am start -n com...

  • 安卓多屏互动Presentation

    前言 随着时代的发展,单在一块屏幕上操作应用已远远不能满足与日俱增的用户需求,安卓系统多屏互动也随即诞生。起初提到...

  • 安卓modal问题

    reactnative老版本安卓modal显示倒是没有问题在0.56.7版本 modal 使用时 安卓的电池条会显...

  • 安卓百度地图(五)百度地图路线规划

    其他文章:安卓百度离线地图的下载以及使用安卓百度地图(一)定位功能的实现、周边POI的检索安卓百度地图(二)地图显...

网友评论

      本文标题:安卓双屏异显Presentation

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