Android 9 пропускает WiFi соединение без интернета - PullRequest
0 голосов
/ 04 января 2019

Я хочу оставаться на связи с Wi-Fi без Интернета в случае удаленного управления устройством. У меня есть служба переднего плана, которая удерживает блокировку Wi-Fi, и я также попытался связатьProcessToNetworkLooks, как это:

val wifiManager = applicationContext
            .getSystemService(WIFI_SERVICE) as WifiManager

    if (wifiLock == null) {
        wifiLock = wifiManager.createWifiLock(WIFI_MODE_FULL_HIGH_PERF, "cameraServiceWifiLock")
    }

    Timber.d("CameraService wifiLock null=%s held=%s", wifiLock != null, wifiLock?.isHeld)
    if (wifiLock != null && !wifiLock!!.isHeld) {
        Timber.d("CameraService wifiLock acquire")
        wifiLock!!.acquire()
    }


    val cm = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    if (SDK_INT >= M && CameraApi.network != null) {
        Timber.d("CameraService bindProcessToNetwork")
        cm.bindProcessToNetwork(CameraApi.network)
    }

теперь я узнал, что система Android продолжает сбрасывать случайный журнал WiFi:

D/WificondControl: Scan result ready event
I/LOWI-8.5.0.3.a: [LOWI-Scan] lowi_close_record:Scan completed in 46343838ms and Recieved 7 APs scan results
D/WifiStateMachine: CMD_START_CONNECT sup state CompletedState my state ConnectedState nid=26 roam=false
I/WifiStateMachine: Connecting with [...] as the mac address
W/wificond: Scan is not started. Ignore abort request
D/SupplicantStaIfaceHal: connectToNetwork "FRITZ!Box 7530 ZI"WPA_PSK
I/wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid=[...] reason=3 locally_generated=1
E/wpa_supplicant: nl80211: Failed to open /proc/sys/net/ipv4/conf/wlan0/drop_gratuitous_arp: No such file or directory
20E/wpa_supplicant: nl80211: Failed set gratuitous ARP filter
2E/wpa_supplicant: nl80211: Failed to open /proc/sys/net/ipv4/conf/wlan0/drop_gratuitous_arp: No such file or directory
E/wpa_supplicant: nl80211: Failed set gratuitous ARP filter

Знаете ли вы, что означает причина отключения = 3, или как я могу сказать android, что это сеть, которую следует использовать в данный момент?

Update1:

причина = 3 в Linux, по-видимому, в том, что устройство не может разрешить адрес через DCHP. Я попытался установить статический Ip устройства в конфигурации WiFi - ничего не изменилось

...