Как проверить, включено или отключено дросселирование сканирования WiFi? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть сценарий разработки, в котором мне нужно проверить, включен или отключен параметр дросселирования WiFi?
Если он включен, я хочу отключить его программно.

private fun prepareForWiFiScan() {

 Toast.makeText(this, "Wifi scan preparation started", Toast.LENGTH_SHORT).show()
        circularProgressbar.visibility = View.VISIBLE
        wiFiManager = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
        if (!wiFiManager.isWifiEnabled) {
            wiFiManager.isWifiEnabled = true
        }
        wiFiScanReceiver = object : BroadcastReceiver() {
            override fun onReceive(context: Context, intent: Intent) {
                Toast.makeText(this@MainActivity, "Wifi scan finished", Toast.LENGTH_SHORT).senter code herehow()
                val i'sSuccess: Boolean = when {
                    android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M -> intent.getBooleanExtra(
                            WifiManager.EXTRA_RESULTS_UPDATED,
                            false
                    )
                    else -> intent.getBooleanExtra(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION, false)
                }
                circularProgressbar.visibility = View.GONE
                when (isSuccess) {
                    true -> scanSuccess()
                    false -> scanFail()
                }
            }
        }
        registerReceiverAndStartScan()
    }

 private fun registerReceiverAndStartScan() {
        val intentFilter = IntentFilter()
        intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)
        registerReceiver(wiFiScanReceiver, intentFilter)
        val success = wiFiManager.startScan()
        if (!success) {
            scanFail()
        }
    }

Ответы [ 3 ]

0 голосов
/ 06 апреля 2020

Нет никакого способа присутствовать до android 10, где мы можем проверить, включен ли дроссель сканирования WiFi. Однако в android R добавлен новый метод, чтобы проверить, включено или отключено дросселирование WiFi-сканирования. Пожалуйста, обратитесь по следующей ссылке. https://developer.android.com/reference/android/net/wifi/WifiManager#isScanThrottleEnabled ()

0 голосов
/ 10 апреля 2020

На самом деле вы также можете проверить Wi-Fi газа в Android версии <10, используя </p>

Settings.Global.getInt(this.getContentResolver(), "wifi_scan_throttle_enabled")

Возвращает 1, если Wi-Fi газа включен, 0 в противном случае

0 голосов
/ 02 апреля 2020

Вы должны использовать broadcastReceiver для получения этого. Проверьте здесь https://developer.android.com/guide/topics/connectivity/wifi-scan

...