将WebSocket客户端连接到设备时,WifiManager.startLocalOnlyHotspot无法启用WiFi热点

时间:2019-09-19 14:11:58

标签: android android-wifi wifimanager hotspot

我有一部启用了3G / 4G的电话,静态IP,并启动了WebSocket服务器(使用org.java-websocket:Java-WebSocket:1.4.0)。

我还需要以编程方式在此设备上启用WiFi热点。

但是,当某些设备(WebSocket客户端)连接到该WebSocket服务器时,奇怪地启用WiFi热点不起作用。 WifiManager.startLocalOnlyHotspot启用了Hotspot,但一秒钟后它会自动禁用。

但是,当没有活动的WebSocket客户端时,以编程方式启用WiFi Hotspot效果很好。

我不知道Android上的网络会发生什么,这很奇怪

fun turnOnHotspot() {
    Log.i(TAG, "wifiManager turnOnHotspot")
    try {
        wifiManager.startLocalOnlyHotspot(object : WifiManager.LocalOnlyHotspotCallback() {

            override fun onStarted(reservation: WifiManager.LocalOnlyHotspotReservation) {
                super.onStarted(reservation)
                Log.d(TAG, "wifiManager onStarted ${reservation.wifiConfiguration}")
            }

            override fun onStopped() {
                super.onStopped()
                Log.d(TAG, "wifiManager onStopped")
            }

            override fun onFailed(reason: Int) {
                super.onFailed(reason)
                Log.d(TAG, "wifiManager onFailed: $reason")
            }
        }, App.handler)
    } catch (e: IllegalStateException) {
        e.printStackTrace()
    }
}

0 个答案:

没有答案