From 997d96a84679521cc2b7bd4a74e46d904a931b30 Mon Sep 17 00:00:00 2001 From: joonhaengHeo <85541460+joonhaengHeo@users.noreply.github.com> Date: Wed, 12 Apr 2023 03:53:13 +0900 Subject: [PATCH] [Android] Fix Commissionable Discover Issue (#25645) * Fix Commissionable Discover Issue * Modify from comment * Restyle --- .../platform/NsdServiceFinderAndResolver.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/platform/android/java/chip/platform/NsdServiceFinderAndResolver.java b/src/platform/android/java/chip/platform/NsdServiceFinderAndResolver.java index 743c1b97e19602..7ee8f979e5ac33 100644 --- a/src/platform/android/java/chip/platform/NsdServiceFinderAndResolver.java +++ b/src/platform/android/java/chip/platform/NsdServiceFinderAndResolver.java @@ -132,7 +132,12 @@ public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { "Failed to resolve service '" + serviceInfo.getServiceName() + "': " + errorCode); chipMdnsCallback.handleServiceResolve( serviceInfo.getServiceName(), - serviceInfo.getServiceType(), + // Use the target service info since the resolved service info sometimes appends a + // "." at the front likely because it is trying to strip the service name out of it + // and something is missed. + // The target service info service type should be effectively the same as the + // resolved service info. + NsdServiceFinderAndResolver.this.targetServiceInfo.getServiceType(), null, null, 0, @@ -157,11 +162,18 @@ public void onServiceResolved(NsdServiceInfo serviceInfo) { "Resolved service '" + serviceInfo.getServiceName() + "' to " - + serviceInfo.getHost()); + + serviceInfo.getHost() + + ", type : " + + serviceInfo.getServiceType()); // TODO: Find out if DNS-SD results for Android should contain interface ID chipMdnsCallback.handleServiceResolve( serviceInfo.getServiceName(), - serviceInfo.getServiceType(), + // Use the target service info since the resolved service info sometimes appends a + // "." at the front likely because it is trying to strip the service name out of it + // and something is missed. + // The target service info service type should be effectively the same as the + // resolved service info. + NsdServiceFinderAndResolver.this.targetServiceInfo.getServiceType(), serviceInfo.getHost().getHostName(), serviceInfo.getHost().getHostAddress(), serviceInfo.getPort(),