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

标签 android raspberry-pi raspberry-pi3 android-things

我在连接触摸屏的 Raspberry Pi 3 上运行 Android Things。

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

我从文档中得知 ( https://developer.android.com/reference/android/net/wifi/WifiManager.html#getScanResults() )

If there is a remote exception (e.g., either a communication problem with the system service or an exception within the framework) an empty list will be returned.

但是除了这个扫描功能之外,一切似乎都工作正常。如何成功扫描网络?

我的代码:

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

list :

<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. 您首先必须注册特定 Intent :SCAN_RESULTS_AVAILABLE_ACTION .

  2. 然后开始扫描:startScan()

  3. 在广播接收器的 onReceive() 方法中,您可以调用 getScanResults()

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

关于android - 在 Android Things 上扫描 Wifi 网络返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913547/

相关文章:

raspberry-pi3 - 适用于树莓派 3 的 Apache Mesos

raspberry-pi - 如何将运行 Android Things 的 Raspberry Pi 3 连接到 wifi 网络?

android - Espresso 检查 View 要么 doesNotExist 要么 not isDisplayed

android - 如何使用全局本地 gradle 安装而不是每次都下载压缩包装?

android - 为什么 Animation.cancel() 和 View.clearAnimation() 在我的案例中不起作用?

java - 为时间增加值(value)

python - exception_on_overflow参数不起作用? PyAudio的

c++ - 树莓派 3 BLE 扫描

java - 无法在 Raspberry Pi 3(Raspbian) 上运行我的 JavaFX jar 文件

python - 如何使用 python 将列从 CSV 文件转换为 json,以便键和值对来自 CSV 的不同列?