jmdns.jar不适用于android 4.0或更高版本
jMdns是一个很好的java库,可以为您的Android应用程序提供功能 我在一个项目中成功地使用了它,直到jmdns.jar不适用于android 4.0或更高版本,android,service,bonjour,zeroconf,jmdns,Android,Service,Bonjour,Zeroconf,Jmdns,jMdns是一个很好的java库,可以为您的Android应用程序提供功能 我在一个项目中成功地使用了它,直到Android 4.0冰激凌三明治又名ICS,一旦Android 4.0设备开始被频繁使用,我就面临着应用程序无法工作的问题 我之前在安卓4.0中测试过这个应用程序,它向我显示了发现设备的列表,但在安卓4.0或更高版本中它什么也没显示 我已经在4.1上测试了此演示“”,但它不起作用 我已经写了以下代码的基础上的建议中提到 private android.net.wifi.WifiMana
Android 4.0冰激凌三明治又名ICS
,一旦Android 4.0设备开始被频繁使用,我就面临着应用程序无法工作的问题
我之前在安卓4.0中测试过这个应用程序,它向我显示了发现设备的列表,但在安卓4.0或更高版本中它什么也没显示
我已经在4.1上测试了此演示“”,但它不起作用
我已经写了以下代码的基础上的建议中提到
private android.net.wifi.WifiManager.multicast锁;
私有android.os.Handler=新的android.os.Handler();
私有JmDNS JmDNS=null;
公共WifiManager-wifi;
私有无效设置()
{
WifiManager wifiMgr=(WifiManager)getSystemService(WIFI_服务);
WifiInfo WifiInfo=wifiMgr.getConnectionInfo();
int ip=wifiInfo.getIpAddress();
字符串ipAddress=格式化程序。formatIpAddress(ip);
试一试{
创建(_bindingAddress);
ServiceInfo[]infos=jmdns.list(“\u afpovertcp.\u tcp.local”);
for(int i=0;i
您的建议很有价值我的简单猜测是,它正在尝试在主线程上下载数据。这在
冰淇淋三明治
和以后的版本中是不可能实现的。当logcat在手机上运行时,尝试查看它,如果是这样,它应该清楚地显示一条警告/错误消息。您可以让它通过主线程运行
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}