gpt4 book ai didi

Android Wifi Direct 服务发现

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:13 24 4
gpt4 key购买 nike

我正在尝试实现一个简单的 android 应用程序,该应用程序在一台设备上广播 WifiP2p bonjour 服务并让第二台设备发现并连接到它。我几乎遵循了教程 here .

我有一个有效的 Channel 对象、一个 DnsSdServiceResponseListener 和一个 DnsSdTxtRecordListener,并通过此调用设置它们:

mManager.setDnsSdResponseListeners(channel, servListener, txtListener);

截至目前,两个监听器都只是吐出一些调试信息以使其真正简单。

问题是我的 DnsSdServiceResponseListener 从未被调用过,但是 DnsSdTxtRecordListener 确实被调用了 并且传入的所有参数看起来都是合法的。怎么能叫一个不叫另一个呢?

我正在使用两台运行 android 4.2.2 的实际设备进行测试。

谢谢!

最佳答案

终于想通了..有点。在获取服务请求实例时,我指定了服务实例名称和类型以匹配创建服务时使用的值...

注册服务:mServiceInfo = WifiP2pDnsSdServiceInfo.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE, 记录);

创建服务请求:mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE);

我在获取服务请求时删除了 newInstance 方法的参数...mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance();

现在两个监听器都被调用了。似乎我的第一种方法会过滤掉附近正在广播的其他服务,这就是我最初选择重载的原因。

关于Android Wifi Direct 服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com