NSD를 사용하여 특정 네트워크 서비스를 찾을 때 android documentation을 읽었습니다. 아래 코드는 사용 가능한 모든 서비스를 찾을 수 있습니다. _http._tcp
서비스.Android의 기본 네트워크 서비스를 사용하여 사용 가능한 모든 서비스를 찾는 방법
final NsdManager.DiscoveryListener discoveryListener = new NsdManager.DiscoveryListener() {
@Override
public void onDiscoveryStarted(String s) {
Log.i(TAG, "onDiscoveryStarted: " + s);
}
@Override
public void onServiceFound(NsdServiceInfo nsdServiceInfo) {
Log.i(TAG, "onServiceFound: " + nsdServiceInfo.toString());
}
@Override
public void onServiceLost(NsdServiceInfo nsdServiceInfo) {
Log.i(TAG, "onServiceLost: " + nsdServiceInfo.toString());
}
@Override
public void onDiscoveryStopped(String s) {
Log.i(TAG, "onDiscoveryStopped: " + s);
}
@Override
public void onStartDiscoveryFailed(String s, int i) {
Log.i(TAG, "onStartDiscoveryFailed: " + s);
}
@Override
public void onStopDiscoveryFailed(String s, int i) {
Log.i(TAG, "onStopDiscoveryFailed: " + s);
}
};
final NsdManager manager = (NsdManager) getSystemService(Context.NSD_SERVICE);
manager.discoverServices("_http._tcp", NsdManager.PROTOCOL_DNS_SD, discoveryListener);
이 시점까지 모든 것이 올바르게 작동합니다. 그러나이 방법을 사용하는 네트워크에서 모든 사용 가능한 서비스 을 찾는 방법이 궁금합니다. 나는 다른 서비스의 다스가 볼 수있다 (예를 들어 _ipp._tcp, _airport._tcp, _airplay._tcp, _atc._tcp 그리고 더 많은) Zeroconf를 검색 응용 프로그램을 사용하여 내 로컬 네트워크에서 사용할 수 Google Play 스토어에 있습니다.
개발자 페이지에서 정보를 찾을 수 없어 단일 검색 수신기를 통해 사용 가능한 모든 서비스를 수집 할 수있는 와일드 카드가 있습니까?
이 문제에 대한 해결책을 찾았습니까? – Rebirth
@Rebirth 불행히도 아닙니다. 그러나 안드로이드의 NDS를 사용하고 싶지 않다면 아마도 [JmDNS] (http://jmdns.sourceforge.net/)와 같은 제 3 자 라이브러리를 사용하는 것이 이것을 달성하기위한 좋은 선택이 될 것입니다. – waqaslam