2013-09-02 13 views
6

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) { 
     } 
    }); 

答えて

2

はい、私はそれを試してみましたが、私はそれがすべてWIFI_P2P_SERVICEについてだと思う - P2Pを意味する - PeerToPeerまたは「のWi-Fiダイレクト」または「アドホック無線LANモード」を意味します。言い換えると、アクセスポイント/ステーションモードの通常のWiFi環境にいるときは機能しません。

「Wi-Fi Direct」のこの状況を除いて、OSレベルでUPnP/SSdPを聞くネイティブな方法はありません。

誰かがチャイムしたい場合は、してください!

関連する問題