当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 一、简单背景简单背景:随着无线互联的深入,不管是蓝牙、WIFI或者各种基于此的规范不管是UPNP还是DLNA都随着用户的需求得到了很大的发展,google 自从android 4.0引入wi

 一、简单背景

简单背景:随着无线互联的深入,不管是蓝牙、WIFI或者各种基于此的规范不管是UPNP还是DLNA都随着用户的需求得到了很大的发展,google 自从android 4.0引入wifi direct后,又在11月份公布的android 4.2中引入了Miracast无线显示共享,其协议在此可以下载。具体的协议部分内容比较多,本人由于水平有限,就不在这里罗列协议的内容了,只附上一份架构图供大家对其有个大致的印象。

英文缩写对应如下:

HIDC: Human Interface Device Class

UIBC: User Input Back Channel

PES: Packetized Elementary Stream

HDCP: High-bandwidth Digital Content Protection

MPEG2-TS: Moving Picture Experts Group 2 Transport Stream

RTSP: Real-Time Streaming Protocol

RTP: Real-time Transport Protocol

Wi-Fi P2P: Wi-Fi Direct

TDLS: Tunneled Direct Link Setup

二、应用层简介

好了,接下来首先来看一看android 4.2 提供了哪些与其相关的应用:

首先,需要注意的自然是API文档中公布的 http://developer.android.com/about/versions/android-4.2.html#SecondaryDisplays

Presentation应用,在源码中路径为:development/samples/ApiDemos/src/com/example/android/apis/app/下面的两个文件

PresentationActivity.java

以及 PresentationWithMediaRouterActivity.java 。

这两个应用所使用的Presentation基类在frameworks/base/core/java/android/app/Presentation.java,可以看到其继承了dialog类,并复用了如show()以及cancel()函数。

由于官方文档已经有了关于Presentation以及MediaRouter的简要介绍,这里先不再结合framework层详细介绍,以后有机会一并再结合源码分析一下。

简单来说,Display Manager 可以列举出可以直连显示的多个设备,MediaRouter提供了快速获得系统中用于演示(presentations)默认显示设备的方法。可以利用

frameworks/base/media/java/android/media /MediaRouter.java下的getSelectedRoute(int type){ }函数来获得当前所选择type类型的Router信息。对于PresentationWithMediaRouterActivity应用而言,

[java] view plaincopy

MediaRouter mMediaRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE);

MediaRouter.RouteInfo route = mMediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO);

Display presentationDisplay = route != null ? route.getPresentationDisplay() : null;

可以看到这里传入的是ROUTE_TYPE_LIVE_VIDEO类型,供其获取已选择的 route信息。之后,则是判断route信息是否为空,如果不为空则返回被选择演示(presentation)设备。值得一提的是,该方法只对 route信息类型为ROUTE_TYPE_LIVE_VIDEO有效。

接下来,只要将该Display对象作为自己重构的演示(Presentation)类构造函数参数传入,这样自己重构的演示就会出现在第二个显示设备上。

[java] view plaincopy

mPresentation = new DemoPresentation(this, presentationDisplay);

...

try {

mPresentation.show();

} catch (WindowManager.InvalidDisplayException ex) {

Log.w(TAG, "Couldn‘t show presentation! Display was removed in "

+ "the meantime.", ex);

mPresentation = null;

}

}

...

[java] view plaincopy

private final static class DemoPresentation extends Presentation {

...

public DemoPresentation(Context context, Display display) {

super(context, display);

}

...

}

为了进一步优化附加显示设备自定义演示UI的显示效果,你可以在 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

M5Stack为各种应用提供广泛的控制器-从超紧凑的Stamp和Atom到更强大的Core系列,具有可堆叠模块。然而,直到最近,还没有专门为工业环境等要求更高的环境设计的设备。这就是StamPLC的用之之道:一个配备继电...

关键字: PLC Wi-Fi 继电器

作为低功耗无线连接领域的创新性领导厂商,Silicon Labs(亦称“芯科科技”)将于8月27至29日携其最前沿的人工智能(AI)和物联网(IoT)解决方案在深圳举办的IOTE 2025国际物联网展中盛大展出。这场亚洲...

关键字: 人工智能 物联网 Wi-Fi

在无线技术的发展历程中,部署的简便性往往是成功的关键。像Wi-Fi、蓝牙和早期的蜂窝技术,只有在集成变得简单、无缝且实惠时,才能实现大规模的应用。而如今,Wi-Fi HaLow——一种专为物联网(IoT)设计的远距离、低...

关键字: 物联网 Wi-Fi USB

其他电脑(比如安卓手机/平板电脑)的屏幕坏了,你可能想在安排维修之前紧急访问一些东西。你可以使用android的USB OTG功能(是的,几乎每个android都支持这个功能,你可以将鼠标和键盘连接到它)。

关键字: USB 鼠标 Android 树莓派

2025年6月26日,中国北京、澳大利亚悉尼与美国加州尔湾——全球领先的Wi-Fi HaLow芯片供应商,摩尔斯微电子今日宣布,公司的MM6108-EKH05-Light芯片已正式获得连接标准联盟(Connectivit...

关键字: Wi-Fi 智能家居 物联网

我一直着迷于非传统的机器人设计,尤其是球形机器人。它们独特的外形使它们能够在任何方向上流畅地移动,导航狭窄的空间,甚至在崎岖的环境中发挥作用。但是,尽管它们很有吸引力,球形机器人往往看起来很复杂,制造起来也很昂贵。

关键字: Wi-Fi 球形机器人 nRF9151

在“调制解调器配置”部分,您可以查看/编辑WiFi调制解调器/路由器的SSID和密码,插入后点击“保存”。在ssid和密码有效的情况下,模块将在大约30秒后连接到调制解调器。

关键字: Wi-Fi 麦克风 Arduino ESP32

DashCam项目使用“AI Thinker ESP32-CAM”模块,该模块具有200万像素摄像头(OV2640), 10个I/O引脚,片上LED,片上闪光灯和一个MicroSD插槽来存储视频。它的微型摄像头和240M...

关键字: ESP32-Cam Wi-Fi Arduino 源代码

BaliSense节点是一种低成本的自主传感器单元,由ESP32和Wi-Fi HaLow (802.11ah)供电,专为巴厘岛等热带环境而设计。这个节点在稻田、海滩、悬崖边的咖啡馆,甚至露天节日等传统基础设施服务不足的地...

关键字: BaliSense节点 传感器 ESP32 Wi-Fi

在当今迅速发展的科技领域,恩智浦继续引领创新潮流,宣布推出全新的自主安全访问解决方案。这一系统级解决方案将变革门禁门锁行业,为用户带来更加自动化的体验,从走近家门那一刻开始。

关键字: MCU Wi-Fi 门禁
关闭