[Fix]解决同一个局域网内有多个相同service导致的崩溃问题
This commit is contained in:
@@ -21,7 +21,6 @@ public class NsdClient {
|
||||
private final String NSD_SERVER_TYPE = "_http._tcp.";
|
||||
|
||||
private NsdManager.DiscoveryListener mDiscoveryListener;
|
||||
private NsdManager.ResolveListener mResolverListener;
|
||||
private NsdManager mNsdManager;
|
||||
private Context mContext;
|
||||
private String mServiceName;
|
||||
@@ -57,7 +56,6 @@ public class NsdClient {
|
||||
mNsdManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE);
|
||||
initializeDiscoveryListener();
|
||||
mNsdManager.discoverServices(NSD_SERVER_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
|
||||
initializeResolveListener();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,12 +95,11 @@ public class NsdClient {
|
||||
Log.e(TAG, "onServiceFound()");
|
||||
//根据咱服务器的定义名称,指定解析该 NsdServiceInfo
|
||||
if (serviceInfo.getServiceName().equals(mServiceName)) {
|
||||
mNsdManager.resolveService(serviceInfo, mResolverListener);
|
||||
mNsdManager.resolveService(serviceInfo, getResolveListener());
|
||||
} else {
|
||||
mHandler.sendEmptyMessage(MSG_NULL);
|
||||
}
|
||||
mNsdServiceInfoListBefore.add(serviceInfo);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -139,8 +136,8 @@ public class NsdClient {
|
||||
/**
|
||||
* 解析未 调用未被解析的 NsdServiceInfo
|
||||
*/
|
||||
private void initializeResolveListener() {
|
||||
mResolverListener = new NsdManager.ResolveListener() {
|
||||
private NsdManager.ResolveListener getResolveListener() {
|
||||
return new NsdManager.ResolveListener() {
|
||||
@Override
|
||||
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
|
||||
Log.e(TAG, "onResolveFailed()");
|
||||
|
||||
Reference in New Issue
Block a user