Android 4.1(Wi-Fiダイレクトサービスディスカバリ)から、ネイティブUPnPサービスディスカバリをサポートすると考えられます。AndroidネイティブUPnPサービスディスカバリ
私はWi-Fi Direct用に開発されたものと推測していますが、利用できる方法は一般的なようです。 メソッドのJavaDocでさえ、WiFiダイレクトスレーブ/マスターだけでなく、ネットワーク上のすべてのUPnPサービスを検索することに言及しています。
しかし、私はそれが動作するように実装していません...私はすべての要件を設定することができ、私はonSuccess
コールバックを得るが、ネットワーク上のサービスについて通知するコールバックはonUpnpServiceAvailable
コールバックを受信しません。私はサードパーティのライブラリを使って発見できるUPnPの3つのサービスを持っています。
誰でもこの機能を試しましたか?
final Channel mChannel;
final WifiP2pManager mManager;
WifiP2pServiceRequest mRequester;
mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
mChannel = mManager.initialize(this, getMainLooper(), new ChannelListener() {
public void onChannelDisconnected() {
Log.i("CI", "Channel detected!");
}
});
mManager.setUpnpServiceResponseListener(mChannel, new UpnpServiceResponseListener() {
public void onUpnpServiceAvailable(List<String> arg0, WifiP2pDevice arg1) {
Log.i("sd", "Found device!!");
}
});
mRequester = WifiP2pUpnpServiceRequest.newInstance();
mManager.addServiceRequest(mChannel, mRequester, new ActionListener() {
public void onSuccess() {
Log.i("d", "AddServiceRequest success!");
mManager.discoverServices(mChannel, new ActionListener() {
public void onSuccess() {
Log.i("d", "DiscoverServices success!");
}
public void onFailure(int reason) {
}
});
}
public void onFailure(int reason) {
}
});