Android onUDPResponseResult 仅通过手动 wifi 连接触发

问题描述

在 Android 中,当连接到 wifi 连接的东西时,并通过与此 AP 的编程连接,我无法实现 setonUDPResponseResultListener 调用,而当我从 android 首选项“手动”连接时可以调用

>

我的 UDP 响应侦听器:

private void setUDPAccept() {
    mSocketManager.setUDPAccept(UDP_PORT,UDP_broADCAST);
    mSocketManager.setonUDPResponseResultListener(new OnUDPResponseResultListener() {
        @Override
        public void onUDPResponseResult(String udpIP,String udpPort) {
            Log.d(TAG,"onUDPResponseResult");
            deviceIP = udpIP;
        }
    });
}

以编程方式连接到 AP 的方式:

val connectivityManager = mContext.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

val specifier = WifiNetworkSpecifier.Builder().setBssid(MacAddress.fromString(data.getBssid()!!)).build()

val networkRequest = NetworkRequest.Builder()
        .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
        .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) // as not internet connection is required for this device
        .setNetworkSpecifier(specifier)
        .build()

val networkCallback = object : ConnectivityManager.NetworkCallback() {
    override fun onAvailable(network: Network) {
        super.onAvailable(network)
        Log.d(TAG,"connect to WiFi success. Network is available.")
        setUDPAccept()
    }

    override fun onUnavailable() {
        super.onUnavailable()
        Log.d(TAG,"connect to WiFi Failed. Network is unavailable")
    }
 }

connectivityManager.requestNetwork(networkRequest,networkCallback)

您是否知道如何使 setonUDPResponseResultListener 触发,即使 wifi AP 以编程方式连接?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)