gpt4 book ai didi

java - Android 原生 UPnP 服务发现

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:04 24 4
gpt4 key购买 nike

来自 Android 4.1 (在 Wi-Fi Direct 服务发现下)假设支持 native UPnP 服务发现。

我认为它是为 Wi-Fi Direct 开发的,但可用的方法似乎是通用的。甚至方法的 JavaDoc 也提到它搜索网络上的所有 UPnP 服务,而不仅仅是 WiFi Direct 从站/主站。

但是,我未能实现它以使其正常工作...我设法设置了所有要求并且我得到了肯定的 onSuccess 回调,但我没有收到 onUpnpServiceAvailable 回调通知网络上的服务。我在 UPnP 上确实有 3 项服务,我可以使用第 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) {
}
});

最佳答案

是的,我试过了,我认为这完全是关于 WIFI_P2P_SERVICE - 意思是 P2P - 意思是 PeerToPeer 或“Wi-Fi Direct”或“Adhoc Wifi 模式”。换句话说,当您处于 Access Point/station 模式的正常 WiFi 情况下时,它不会工作。

除了“Wi-Fi Direct”这种情况,我认为 Android 没有任何 native 方式可以在操作系统级别监听 UPnP/SSdP。

如果有人想插话,请插话!

关于java - Android 原生 UPnP 服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18576580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com