Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:WifiP2pManager.discoverServices不';我们不能发送UPNP数据_Android_Upnp - Fatal编程技术网

Android:WifiP2pManager.discoverServices不';我们不能发送UPNP数据

Android:WifiP2pManager.discoverServices不';我们不能发送UPNP数据,android,upnp,Android,Upnp,我正在开发一个应用程序,它使用UPNP通过UPNP发现一个电视机顶盒,以便将在设备上拍摄的照片上传到电视上 在onCreate中,我获取管理器并初始化频道 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);

我正在开发一个应用程序,它使用UPNP通过UPNP发现一个电视机顶盒,以便将在设备上拍摄的照片上传到电视上

onCreate
中,我获取管理器并初始化频道

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    mChannel = mManager.initialize(this, getMainLooper(), null);
    mReceiver = new WiFiDirectBroadcastReceiver(mManager, mChannel);
    mIntentFilter = new IntentFilter();
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);

    mManager.setUpnpServiceResponseListener(mChannel, new WifiP2pManager.UpnpServiceResponseListener() {
        @Override
        public void onUpnpServiceAvailable(List<String> uniqueServiceNames, WifiP2pDevice srcDevice) {
            UpnpServices service = new UpnpServices(uniqueServiceNames, srcDevice);
            mPeers.add(service);
        }
    });
}
LogCat中的一切似乎都很成功,但从未调用
UpnpServiceResponseListener
,当我尝试嗅探网络时,我看不到任何UPNP流量-没有IGMP连接,没有SSDP,什么都没有

这里有我错过的一步吗?从我所看到的一切(包括其他),我正在做我应该做的事情


TIA希望您能提供帮助解决这个问题。

如您所知,UPnP服务属于UPnP设备。因此,您需要首先获取
WifiP2pDevice
实例,然后连接/加入它


请看,android.net.wifi.p2p.WifiP2pConfig,android.net.wifi.p2p.WifiP2pManager.ActionListener)

您是否已通过Wi-Fi Direct连接到电视机盒?我最终使用了UPnP库来连接。这是为了一个PoC。
private void setServiceListeners()
{
    mManager.addServiceRequest(mChannel, WifiP2pServiceRequest.newInstance(WifiP2pServiceInfo.SERVICE_TYPE_UPNP), mRequestListener);
    mManager.discoverServices(mChannel, mActionListener);
}