在Android Things上扫描Wifi网络会返回空列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android Things上扫描Wifi网络会返回空列表相关的知识,希望对你有一定的参考价值。

我在附带触摸屏的Raspberry Pi 3上运行android Things。

我正在尝试在我的应用程序中创建自己的GUI,以使用WifiManager类连接到可用的wifi网络。但是,getScanResults()函数始终返回一个空列表,即使您可以在IoT启动器中看到扫描的无线网络。

我从文档中知道(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上的Wifi扫描是一种异步机制。

  1. 您首先必须注册特定的意图:SCAN_RESULTS_AVAILABLE_ACTION
  2. 然后使用:startScan()开始扫描
  3. 在广播接收器的onReceive()方法中,您可以调用getScanResults()

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

以上是关于在Android Things上扫描Wifi网络会返回空列表的主要内容,如果未能解决你的问题,请参考以下文章

Android Things 中的 WiFi P2P 网络

在 android 上使用 pyjnius 连接到 wifi 网络

Android Wifi 主动扫描 被动扫描

Android Settings 修复:wifi→添加网络→扫描二维码界面上下压缩

Android WIFI 分析

如何在 Android Things 上安装 USB 驱动器?