java - 连接到特定的 WiFi (Android Q)

标签 java android kotlin wifi ssid

这个问题在这里已经有了答案:





Connect to Wifi in Android Q programmatically

(7 个回答)


去年关闭。




在我的应用程序中,我试图自动连接到特定的 SSID(在 android Q 中)。我正在使用“WifiNetworkSpecifier”、“NetworkRequest”和“ConnectivityManager”类来做到这一点。当我提出请求时,屏幕上会出现一个对话框,要求我连接到这个 SSID,我点击然后它就连接了。但是有两个问题:

  • 它没有真正连接(没有互联网),我必须禁用和启用 WiFi 才有机会真正连接!
  • 当我从内存中清除应用程序时,它会自动断开连接。

  • 我正在寻求解决这些问题,但没有足够的示例或示例。
    这是我在源代码中所做的:
    fun connectToWifi(networkSSID: String, networkPassword: String?, bssid: String?)
            val specifier = WifiNetworkSpecifier.Builder()
                .setSsid(networkSSID)
            if (networkPassword != null) {
                specifier.setWpa2Passphrase(networkPassword)
            }
            if (bssid != null) {
                specifier.setBssid(MacAddress.fromString(bssid))
            }
            val request = NetworkRequest.Builder()
                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .setNetworkSpecifier(specifier.build())
                .build()
            val connectivityManager =
                singletonArgument.context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
            val networkCallback = object : ConnectivityManager.NetworkCallback() {
                override fun onAvailable(network: Network?) {
                    Log.d(TAG, "network available")
                }
    
                override fun onUnavailable() {
                    Log.d(TAG, "network unavailable")
                }
            }
            connectivityManager.requestNetwork(request, networkCallback)
    }
    

    最佳答案

    根据此线程 ( https://support.google.com/pixelphone/thread/13670154?hl=en ),这是 Google 即将修复的某些设备上的已知问题。
    只需检查它是否适用于 2.4GHz SSID。我希望它能帮助你。

    关于java - 连接到特定的 WiFi (Android Q),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60055732/

    相关文章:

    java - 来自嵌套 POJO 的比较器

    java - 无法在 Android 10 中创建目录

    android - 当应用程序未运行时,PendingIntent 中带有服务的通知操作不起作用

    Android 动态创建的表 - 性能不佳

    android - 使用 RxJava 将本地数据与远程(或缓存)数据连接起来

    java - Kotlin 方法接受内联类作为参数 - 如何从 Java 访问?

    android - Firebase 日期范围查询以获取具有 starDate 和 endDate 的文档

    Java readline() 性能在后续测试中有所不同

    java - 使用 Java 2D 的抗锯齿高度图边缘

    java - IOException 解析 XML 文档