
From: http://jmdns.sourceforge.net/
常摸 Apple 裝置的工程師,對 mDNS 應該不陌生,現在就來把玩一下如何在 Android 透過 mDNS 偵測裝置,所幸的已經有好人弄好 jmdns library 啦,且用起來也非常方便。
筆記一下項目:
- 在 Mac 10.8 環境下使用 dns-sd 來註冊裝置偵測資訊
- $ dns-sd -R DeviceName ServiceType ServiceDomain ServicePort TXTRecords
- 如何用 jmdns 處理 TXT record
- 可在 public void serviceResolved(ServiceEvent arg0) 裡透過 byte [] txt = arg0.getInfo().getTextBytes(); 取得資訊
- 每一組 key-value pair 前一個 byes 代表此組長度
No matching processes belonging to you were found
$ dns-sd -R device1 _changyytcp._tcp local 9900 k1=v1 k2=v2 k3=v3
Registering Service device1._changyytcp._tcp.local port 9900 TXT k1=v1 k2=v2 k3=v3
DATE: ---Wed 15 May 2013---
20:50:08.084 ...STARTING...
20:50:08.279 Got a reply for service device1._changyytcp._tcp.local.: Name now registered and active
處理 TXT Record 片段程式碼:
public void serviceResolved(ServiceEvent arg0) {
// TODO Auto-generated method stub
System.out.println("serviceResolve:"+arg0.getName());
程式輸出:
I/System.out(#): TXT KeyValuePair:[k1=v1]
I/System.out(#): TXT KeyValuePair:[k2=v2]
I/System.out(#): TXT KeyValuePair:[k3=v3]
註:別忘了模擬器不支援,需用實機測試,更多程式碼可參考 https://github.com/changyy/android-mdns

