Sink做GO模式

背景:

Miracast是由wifi联盟在2012年所制定的行业标准,通过Miracast认证的设备将在最大程度内保持对Wi-Fi Display功能的支持和兼容。通过Miracast用户可以在不同设备间进行镜像的投屏,代替了传统有线连接的方式。Miracast的工作流程:WFD设备发现-> P2P设备连接 -> WFD能力交换和协商 -> WFD会话建立->流媒体传输 -> WFD会话关闭。

GO协商流程

在P2P设备连接阶段,涉及到GO协商(Group Owner Negotiation)。GO协商的目的是接收端(sink)和发送端(source)两台设备中哪一台做组的拥有者(GO),而另一台则作为组的客户端(GC)。GO协商流程很复杂,主要有如下三个流程:请求(Req)、响应(Response)和确认(Confirm),发送端和接收端设备交换各自的能力信息,最终由得分高设备作为GO。这里一般的情况是source端做GO,而sink端做GC。

sink做GO

在某些较少的场景下,需要将sink端作为GO模式,这里介绍一个方法:在sink端的mWifiP2pManager初始化时,调用mWifiP2pManager.createGroup方法进行GO模式的创建,代码如下所示:

           WifiP2pManager mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
            if (mWifiP2pManager == null) {
                Log.e(TAG, "mWifiP2pManager is NULL");
            } else {
                ...
+                //the default mode of sink is GC
+                //sink as go mode is only for special case.
+                if(false) {
+                    mWifiP2pManager.createGroup(mChannel, new WifiP2pManager.ActionListener(){
+                        public void onSuccess() {
+                            Log.d(TAG, "create group for GO mode");
+                        }
+                        public void onFailure(int reason) {
+                            Log.d(TAG, "create group for GO mode fail=" + reason);
+                        }
+                    });
+                }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值