我在连接触摸屏的 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 扫描是一种异步机制。
您首先必须注册特定 Intent :SCAN_RESULTS_AVAILABLE_ACTION .
然后开始扫描:startScan()
在广播接收器的 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/