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 PlayStoreにあります
開発者ページでこのような情報が見つからないため、単一のディスカバリーリスナーで利用可能なサービスをすべて収集できるワイルドカードはありますか?
この問題の解決策を見つけましたか? – Rebirth
@Rebirth残念ながら。しかし、アンドロイドのNDSを使用したくない場合は、おそらく[JmDNS](http://jmdns.sourceforge.net/)のような第三者のライブラリを使って、これを実現するのは良い選択です。 – waqaslam