双屏 HDMI 输出编程

2024-03-09

在我的搜索中,我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出。尽管像摩托罗拉这样的某些设备制造商(不知道是否还有其他制造商也这样做)提供了 API 以实现更好的控制。下面是其中两个的链接,其中双屏链接(非常适合我的要求)已被弃用。

摩托罗拉 HDMI 状态 API http://developer.motorola.com/docs/motorola-hdmi-status-api/

摩托罗拉 HDMI 双屏 API http://developer.motorola.com/docs/motorola-hdmi-dual-screen-api/

镜像是连接 HDMI 时的默认行为,但我希望我的应用程序在 HDMI 输出上运行绑定服务。这将允许手机同时执行任何其他任务,而不会干扰我在 HDMI 屏幕上运行的服务。

有人可以建议我该怎么做吗?或者是否有其他制造商提供与摩托罗拉类似的灵活性?


像这样创建一个 Service 类。

public class MultiDisplayService extends Service {
    @Override
    public void onCreate() {
        super.onCreate();
        DisplayManager dm = (DisplayManager)getApplicationContext().getSystemService(DISPLAY_SERVICE);
        if (dm != null){
            Display dispArray[] = dm.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);

        if (dispArray.length>0){
            Display display = dispArray[0];
            Log.e(TAG,"Service using display:"+display.getName());
            Context displayContext = getApplicationContext().createDisplayContext(display);
            WindowManager wm = (WindowManager)displayContext.getSystemService(WINDOW_SERVICE);
            View view = LayoutInflater.from(displayContext).inflate(R.layout.fragment_main,null);
            final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                    WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.TYPE_TOAST,
                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
                    PixelFormat.TRANSLUCENT);
            wm.addView(view, params);
        }
    }
}

启动服务,也许在您的应用程序类中。

public class MultiDisplayApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        startService(new Intent(this, MultiDisplayService.class));
    }
}

您可能需要基于以下内容的更复杂的显示添加/删除逻辑DisplayManager.DisplayListener

mDisplayManager = (DisplayManager) this.getSystemService(Context.DISPLAY_SERVICE);
mDisplayManager.registerDisplayListener(this, null);

Using WindowManager.LayoutParams.TYPE_TOAST不需要任何权限,但看起来像是黑客。WindowManager.LayoutParams.TYPE_SYSTEM_ALERT可能更合理,但需要

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

在你的 AndroidManifest 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

双屏 HDMI 输出编程 的相关文章

随机推荐

  • 报告查看器控件不显示来自 SSRS 的报告

    我在 VS 2013 中使用 MS Report Viewer 10 该项目正在从 VS 2010 升级 我已经解决了一系列与报表查看器相关的问题 并让控件本身启动并运行 我在 SSRS 中有很多报告 并且我已经确认这些报告本身可以正常工作
  • View.playSoundEffect 有问题吗?

    我正在尝试播放声音效果 使用View playSoundEffec 方法 当按钮获得焦点时 问题是除非启用目标手机的声音选择 否则效果将永远不会播放 它可以从以下位置启用 Settings gt Sounds display gt Audi
  • PHP 将 Excel 导入数据库(xls 和 xlsx)

    我尝试搜索一些插件将Excel文件导入MySQL数据库 其中之一是http code google com p php excel reader http code google com p php excel reader 该工具非常强大
  • 如何使用rails运行简单的MYSQL查询

    我想使用 Rails 运行一个简单的 MYSQL 查询 Select movie title movie director from moving order by rating desc limit 5 我不想要创建模型的所有开销 我只想
  • 元组 (a,b)=(b,a) 中的成员交换在内部如何工作?

    In 55 a 5 In 56 b 6 In 57 a b b a In 58 a Out 58 6 In 59 b Out 59 5 a 和 b 的值交换在内部是如何工作的 它绝对不使用临时变量 Python 将右侧表达式与左侧赋值分开
  • android-studio的sdk管理器中没有LLDB

    I am using android studio 3 6 3 in my Manjaro Linux I am trying to run c in android studio for that i need LLDB I reinst
  • ReactJS错误编译失败'define'未定义

    我尝试编译的应用程序未使用外部 jquery 及其关联的 JS 文件进行编译 当我尝试将这些文件链接到 ReactJS 应用程序中的 HTML 页面时 它会抛出以下错误 错误是 define 未定义 no undef 此错误来自 jquer
  • 改造,回调 204 无内容响应?

    在 Android 上 我最初实现了一个像这样的 Retrofit 界面 DELETE USER API BASE URL id public void deleteUser Path id String id Callback
  • 当同级项具有不同宽度时将 Flex 项居中[重复]

    这个问题在这里已经有答案了 我知道 Flexbox 为居中项目提供了一个很好的解决方案 但是当我有 3 个项目并且我希望中心 第二个 项目相对于窗口居中时 我遇到了一个问题 而不管其他 2 个项目的大小 在我的笔中 您可以看到第二项 客户索
  • eclipse neon - 忽略 json 错误

    我的项目中只有很少的 JSON 并将它们导入 Eclipse 后Neon我在文件 和项目 上看到红色标记 抱怨 JSON 问题 我的问题是如何禁用 跳过 忽略 Eclipse Neon 中的 JSON 错误 您可以在下面配置 JSON 验证
  • jquery 文档内部或外部的函数就绪

    到目前为止 我只是将所有 jQuery 优点都放在了 document ready 函数 包括某些用户交互中使用的简单函数 但是不需要加载 DOM 文档或仅在之后调用的函数可以放置在 document ready 以及 例如 考虑一个非常简
  • 在 Python 中使用 try- except-else 是一个好习惯吗?

    在 Python 中 我时常会看到这样的块 try try this whatever except SomeException as exception Handle exception else return something try
  • JPMS ServiceLoader 没有按预期为我工作

    JPMS服务加载器不符合我的预期 我正在尝试提供一个作为可执行 jar 的桌面程序使用默认服务 单个用户可能会超载 用户提供自己的服务类 并在命令行上将其名称作为参数给出 The service package eu ngong mySer
  • 使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM

    我在 MySQL 5 1 38 中有两个表 products id name price department 1 Fire Truck 15 00 Toys 2 Bike 75 00 Toys 3 T Shirt 18 00 Clothe
  • 导轨 计数 选择不同的

    我正在记录用户观看一系列视频的次数 现在我正在尝试制作一个图表 显示每天观看任何视频的用户数量 UserVideoWatching where created at gt AND user id 1 month ago User eleph
  • tidytext、quanteda 和 tm 返回不同的 tf-idf 分数

    我正在尝试研究 tf idf 加权语料库 我希望 tf 是按文档划分的比例 而不是简单的计数 我希望所有经典文本挖掘库都会返回相同的值 但我得到了不同的值 我的代码中是否存在错误 例如 我是否需要转置对象 或者 tf idf 计数的默认参数
  • 迭代同步集合

    我在这里问了一个关于迭代 a 的问题Vector 我已经得到了一些好的解决方案的答复 但我读到了另一种更简单的方法 我想知道这是否是一个好的解决方案 synchronized mapItems Iterator
  • 在Python 3中编写一个函数将基数16转换为基数10

    有没有一种简单的方法来修改这段从基数 2 转换为基数 10 的代码 以将基数 16 转换为基数 10 我的目标是构建一个专用的转换函数 而不使用任何内置的 Python 功能进行计算 谢谢 BinaryVal int input Enter
  • ARC 中的“[[something keep] autorelease]”相当于什么?

    相当于什么 something retain autorelease in ARC 我遇到一个问题 类 DBRequest 调用我的委托来表示完成 然后 我的委托将 DBRequest 实例设置为 nil 即 dealloc 但是 当堆栈从
  • 双屏 HDMI 输出编程

    在我的搜索中 我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出 尽管像摩托罗拉这样的某些设备制造商 不知道是否还有其他制造商也这样做 提供了 API 以实现更好的控制 下面是其中两个的链接 其中双屏链