【发布时间】:2013-07-10 06:37:02
【问题描述】:
jMdns 是一个出色的 Java 库,可为您的 Android 应用程序提供zeroconf/bonjour 功能。
直到Android 4.0 Ice Cream Sandwich aka ICS,我在一个项目中成功使用了它,一旦开始更频繁地使用 Android 4.0 设备,我就会面临应用程序无法正常工作的问题。
我之前在 android 4.0 中测试过应用程序,它显示了 Discover Devices 列表,但在 android 4.0 或更高版本中它什么也没显示。
我在 4.1 上测试了这个演示“https://github.com/twitwi/AndroidDnssdDemo”,但它不起作用。
我根据"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();
}
}
你的建议很重要
【问题讨论】:
标签: android service bonjour zeroconf jmdns