【问题标题】:Android: WifiP2pManager.discoverServices doesn't have UPNP data sentAndroid:WifiP2pManager.discoverServices 没有发送 UPNP 数据
【发布时间】:2014-12-24 15:55:47
【问题描述】:

我正在开发一个应用程序,该应用程序使用 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);
        }
    });
}

在onPause 我调用我的setServiceListeners 例程:

private void setServiceListeners()
{
    mManager.addServiceRequest(mChannel, WifiP2pServiceRequest.newInstance(WifiP2pServiceInfo.SERVICE_TYPE_UPNP), mRequestListener);
    mManager.discoverServices(mChannel, mActionListener);
}

LogCat 中的一切似乎都是成功的,但从未调用过 UpnpServiceResponseListener,当我尝试嗅探网络时,我看不到任何 UPNP 流量 - 没有 IGMP 加入,没有 SSDP,什么也没有。

这里有没有我遗漏的步骤?从我所看到的一切(包括http://developer.android.com/guide/topics/connectivity/wifip2p.html 等)来看,我正在做我应该做的事情。

TIA 寻求任何帮助来解决这个问题。

【问题讨论】:

  • 你通过Wi-Fi Direct连接电视机了吗?
  • 我最终使用了一个 UPnP 库来建立连接。这是为了一个 PoC。

标签: android upnp


【解决方案1】:

如您所知,UPnP 服务属于 UPnP 设备。所以你需要先获取WifiP2pDevice 实例并与之连接/加入。

参见http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html#connect(android.net.wifi.p2p.WifiP2pManager.Channel、android.net.wifi.p2p.WifiP2pConfig、android.net.wifi.p2p.WifiP2pManager.ActionListener)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多