扫描Android上的WiFi网络返回空列表



我在附上触摸屏的Raspberry Pi 3上运行Android事物。

我正在尝试在我的应用中创建自己的GUI,以使用WiFimanager类连接到可用的WiFi网络。但是,即使您可以在IoT Launcher中扫描WiFi网络,getScanResults()函数也总是返回一个空列表。

我从文档(https://developer.android.com/reference/android/net/wifi/wifimanager.html#getscanresults())

如果有远程异常(例如,系统服务的通信问题或框架中的异常)将返回一个空列表。

但是,除了此扫描功能外,一切似乎都可以正常工作。我如何成功扫描网络?

我的代码:

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
List<ScanResult> scanResults = wifiManager.getScanResults();
Log.v(this.class.getSimpleName(), "scanResults.size() = " + scanResults.size()); //Prints "0"

清单:

<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    ...
</manifest>

谢谢!

在Android上扫描是一种异步机制。

  1. 您首先必须注册特定意图:scan_results_available_action。

  2. 然后开始使用:startScan()

  3. 开始扫描
  4. 在广播接收器的OnReceive()方法中

您可以在以下文章中找到更多信息:https://www.nplix.com/2017/03/12/scan-list-wifi-network-andwork-android/

最新更新