首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Wifi Direct Printer的TXT记录

来自Wifi Direct Printer的TXT记录
EN

Stack Overflow用户
提问于 2017-01-27 06:41:47
回答 2查看 331关注 0票数 2

我正在尝试从附近的Wifi直接打印机获取TXT记录。到目前为止,我可以发现同级并建立连接。但TXT唱片公司没那么走运。

我尝试过Wifi Direct Service Discovery,我相信我做得很好,因为我比较了来自不同资源的大量代码,包括谷歌的示例项目和GitHub中的一些开源Wifi Direct包装器。但我不能让它工作。

在尝试实现这一点时,我也看到了一些奇怪的问题。例如,在一些设备中,当我开始对等发现时,Wifi连接开始不断地关闭和打开。

有人能解释一下这到底是怎么回事吗?DnsSdServiceResponseListenerDnsSdTxtRecordListener是为安卓设备而不是打印机设计的吗?

在建立了安卓和Wifi Direct Printer之间的连接后,我也试着用MulticastSocket收听MultiCast DNS IP Address (224.0.0.251),但我也收不到任何数据。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-02-05 00:52:18

我在当前的项目中成功地使用了"DnsSdServiceResponseListener“和"DnsSdTxtRecordListener”。两个监听器都与发现附近的本地服务相关联。

要正确使用它们,您必须执行以下操作:

实现你的监听器

代码语言:javascript
复制
WifiP2pManager.DnsSdServiceResponseListener dnsListener = new WifiP2pManager.DnsSdServiceResponseListener() {
            @Override
            public void onDnsSdServiceAvailable(String instanceName, String registrationType, WifiP2pDevice device) { 
           // instanceName is service name and device is the print information
}};


WifiP2pManager.DnsSdTxtRecordListener txtListener = new WifiP2pManager.DnsSdTxtRecordListener() {
            @Override
            public void onDnsSdTxtRecordAvailable(String fullDomain, Map record, WifiP2pDevice device) {
            // here we get the service published information in the record map object
}};

将监听器添加到WiFiManager对象

代码语言:javascript
复制
wifiP2PManagerObj.setDnsSdResponseListeners(mChannel, dnsListener, txtListener);

添加服务请求

代码语言:javascript
复制
WifiP2pDnsSdServiceRequest serviceRequest = WifiP2pDnsSdServiceRequest.newInstance();
wifiP2PManagerObj.addServiceRequest(mChannel,serviceRequest, actionListener);

最后,发现服务

代码语言:javascript
复制
wifiP2PManagerObj.discoverServices(mChannel,actionListener);

发现服务执行成功后,监听器应该会收到附近的服务信息。

希望这能有所帮助。祝你好运。

更新

默认情况下,Wifi直接支持的打印机没有任何已发布的服务。要使用它们,你必须通过wifi直接连接到它们,并正常打印,因为它是连接到您的网络的打印机。请注意,这些侦听器旨在捕获已发布的服务(即,除非发布服务,否则不会捕获任何设备的任何内容)。

票数 0
EN

Stack Overflow用户

发布于 2017-03-18 01:28:14

我认为一旦连接建立,您将需要运行Bonjour discovery。您可以看到NSD并查找"_ipp._tcp“作为服务类型。顺便说一句,对于“我在尝试实现这一点时也发现了一些奇怪的问题。例如,在一些设备中,当我开始对等发现时,Wifi连接开始不断地关闭和打开。”如果你在7.1设备上测试,你可能会看到这个issue,它的补丁应该很快就会出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41884283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档