使用WifiManager没有任何wifi网络

问题描述 投票:0回答:2

我正在使用WifiManager获取可用的wifi网络列表。

这是我的方法:

 public List<ScanResult> getWifiInRange() {

    //scan for wifis
    wifiMgr.startScan();

    // gets ~last~ list of WiFi networks accessible through the access point.
    return (wifiScan = (List<ScanResult>) wifiMgr.getScanResults());
  }

但是这种方法在某些设备上不会返回任何wifi网络!

例如,当我在Asus_p024上使用此方法时,它可正常工作并返回可用的wifi网络列表但在Samsung Tab-s上它返回0项!

更新

我只是改变了我的代码并实现了这样的广播:

public class WifiBroadcast extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

      List<ScanResult> mScanResults = wifi.getScanResults();

      wifiList = wifi.getScanResults();
      netCount = wifiList.size();

      Log.d("Wifi", "Total Wifi Network" + netCount);

    }
  }

我仍然无法获得可用的wifi网络列表。

谢谢您的帮助。

android android-wifi
2个回答
1
投票

尝试为SCAN_RESULTS_AVAILABLE_ACTION注册here的BroadcastReceiver。 WifiManager.getScanResults()的文档说:

返回最新接入点扫描的结果。

因此,我们无法确定在调用getScanResults()时可以获得最新扫描的结果


1
投票

请检查您的清单中是否包含以下权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

此外,对于API 23+,必须在运行时请求权限。

© www.soinside.com 2019 - 2024. All rights reserved.