jMdns - отличная библиотека Java для предоставления zeroconf / bonjour к вашему приложению Android.
Я успешно использовал это в проекте до Android 4.0 Ice Cream Sandwich aka ICS
, когда устройства Android 4.0 начали использоваться чаще, я столкнулся с тем, что приложение не работает.
Я тестировал приложение в Android 4.0 ранее, он показывает мне список Обнаружение устройств, но в Android 4.0 или более поздних версиях он ничего не показывает.
Я протестировал эту демонстрацию https://github.com/twitwi/AndroidDnssdDemo на 4.1, но она не работает .
Я написал код ниже на основе предложения, упомянутого в http://snctln.com/2012/08/03/jmdns-and-android-4-0/
private android.net.wifi.WifiManager.MulticastLock lock;
private android.os.Handler handler = new android.os.Handler();
private JmDNS jmdns = null;
public WifiManager wifi;
private void setUp()
{
WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipAddress = Formatter.formatIpAddress(ip);
try {
jmdns.create(_bindingAddress);
ServiceInfo[] infos = jmdns.list("_afpovertcp._tcp.local.");
for (int i=0; i < infos.length; i++) {
Log.i("Servic : ",infos[i].getName()+"");
// notifyUser("\nServic : "+infos[i].getName()+"");
}
} catch (IOException e) {
e.printStackTrace();
}
}
ваше предложение заметно