gpt4 book ai didi

android - NSNetworkManager.ResolveListener 消息 Android

转载 作者:太空狗 更新时间:2023-10-29 15:36:37 26 4
gpt4 key购买 nike

有人可以解释一下可以传递到回调中的错误消息,即

public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode)

我以前见过错误代码 3,但不知道它是什么意思。该文档充其量似乎很古怪...

干杯,

最佳答案

我通过再次调用 resolveService 解决了这个问题。它可能会连续失败几次,但最终会解决。

        @Override
public void onServiceFound(NsdServiceInfo serviceInfo) {
Log.d(TAG, "Service found: "+ serviceInfo);
if (!serviceInfo.getServiceType().equals(SERVICE_TYPE)){
Log.d(TAG, "Unknown service type: " + serviceInfo.getServiceType());
} else if (serviceInfo.getServiceName().equals(mServiceName)){
Log.d(TAG, "Same machine");
} else {
startResolveService(serviceInfo);
}
}

我不是从 onServiceFound 中调用 resolveService,而是调用它的单独声明:

        private void startResolveService(NsdServiceInfo serviceInfo){
NsdManager.ResolveListener newResolveListener = new NsdManager.ResolveListener() {
@Override
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.e(TAG, "Resolve Failed: " + serviceInfo + "\tError Code: " + errorCode);
switch (errorCode) {
case NsdManager.FAILURE_ALREADY_ACTIVE:
Log.e(TAG, "FAILURE_ALREADY_ACTIVE");
// Just try again...
startResolveService(serviceInfo);
break;
case NsdManager.FAILURE_INTERNAL_ERROR:
Log.e(TAG, "FAILURE_INTERNAL_ERROR");
break;
case NsdManager.FAILURE_MAX_LIMIT:
Log.e(TAG, "FAILURE_MAX_LIMIT");
break;
}
}

@Override
public void onServiceResolved(NsdServiceInfo serviceInfo) {
Log.i(TAG, "Service Resolved: " + serviceInfo);
mLocatedServices.add(serviceInfo);
reportNewService();
}
};
mNsdManager.resolveService(serviceInfo, newResolveListener);
}

当几乎同时发现多个服务时,第一个服务得到解决,然后 FAILURE_ALREADY_ACTIVE 一次或两次,然后下一个服务得到解决,依此类推。

关于android - NSNetworkManager.ResolveListener 消息 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16736142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com