這就是我想要實(shí)現(xiàn)的目標(biāo)。我有一個(gè)帶有內(nèi)置打印機(jī)的安卓設(shè)備,我可以通過(guò)串行接口訪問(wèn)它。我希望使用和打印 Play 商店中的 2 個(gè)應(yīng)用程序。這些應(yīng)用程序僅允許通過(guò)以太網(wǎng)使用打印機(jī)。我寫了一個(gè) android 應(yīng)用程序來(lái)偵聽端口 9100 上的連接,任何傳入它只會(huì)將原始數(shù)據(jù)傳遞給打印機(jī)。這與其中一個(gè)應(yīng)用程序的預(yù)期一樣有效。使用工作應(yīng)用程序,我可以選擇指定打印機(jī) IP。另一個(gè)應(yīng)用程序不允許我指定 IP 地址,它試圖自動(dòng)為我找到打印機(jī)但失敗了。我嘗試使用以下方式在網(wǎng)絡(luò)上宣傳該服務(wù)。https://github.com/andriydruk/RxDNSSSD try { dnssd.register("printproxy", "_printer._tcp", 9100, new RegisterListener() { @Override public void serviceRegistered(DNSSDRegistration registration, int flags, String serviceName, String regType, String domain) { Log.i("TAG", "Register successfully "); } @Override public void operationFailed(DNSSDService service, int errorCode) { Log.e("TAG", "error " + errorCode); } }); } catch (DNSSDException e) { Log.e("TAG", "error", e); }如果我在列出 bonjour 服務(wù)的設(shè)備上加載它顯示的應(yīng)用程序_printer._tcp.local 打印代理 192.168.2.28:9100所以它看起來(lái)可能按預(yù)期工作。雖然需要打印機(jī)的安卓應(yīng)用還是找不到。我運(yùn)行了 wireshark,但并沒有對(duì)此有所了解。在掃描過(guò)程中,我可以看到應(yīng)用正在探測(cè)網(wǎng)絡(luò)。我得到以下信息。7274 31.804692 192.168.1.28 224.0.0.251 MDNS 176 Standard query 0x0000 ANY printproxy._printer._tcp.local, "QM" question ANY Android-3.local, "QM" question ANY Android-3.local, "QM" question SRV 0 0 9100 Android-3.local A 192.168.1.28 AAAA fe80::2e0:4cff:fea8:4db97290 32.055612 192.168.1.28 224.0.0.251 MDNS 420 Standard query response 0x0000 TXT, cache flush PTR _printer._tcp.local PTR printproxy._printer._tcp.local SRV, cache flush 0 0 9100 Android-3.local PTR, cache flush Android-3.local PTR, cache flush Android-3.local A, cache flush 192.168.1.28 AAAA, cache flush fe80::2e0:4cff:fea8:4db9 NSEC, cache flush printproxy._printer._tcp.local NSEC, cache flush 28.1.168.192.in-addr.arpa NSEC, cache flush 9.B.D.4.8.A.E.F.F.F.C.4.0.E.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa NSEC, cache flush Android-3.local任何幫助將非常感激。
1 回答

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
結(jié)果我只需要將服務(wù)更改為 _ipp 就可以在網(wǎng)絡(luò)上自動(dòng)檢測(cè)到它。
盡管事實(shí)證明 android 應(yīng)用程序正在使用 UDP 廣播進(jìn)行打印機(jī)發(fā)現(xiàn),并且只是等待設(shè)備返回的字符串。那是另一個(gè)問(wèn)題......
添加回答
舉報(bào)
0/150
提交
取消