WifiManager.startLocalOnlyHotspot не включает точку доступа WiFi, когда к устройству подключен клиент WebSocket - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть телефон с включенным 3G / 4G, статическим IP-адресом и запуском сервера WebSocket (используется org.java-websocket:Java-WebSocket:1.4.0).

Мне также необходимо программно включить точку доступа WiFi на этом устройстве.

Но странное включение WiFi Hotspot не работает, когда какое-либо устройство (клиент WebSocket) подключено к этому серверу WebSocket.WifiManager.startLocalOnlyHotspot включает Hotspot, но через секунду автоматически отключается.

Но включение WiFi Hotspot программно работает нормально, когда нет активного клиента WebSocket.

Понятия не имею, что происходит с сетью на 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()
    }
}
...