我在附上触摸屏的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上扫描是一种异步机制。
-
您首先必须注册特定意图:scan_results_available_action。
-
然后开始使用:startScan()
开始扫描 在广播接收器的OnReceive()方法中
您可以在以下文章中找到更多信息:https://www.nplix.com/2017/03/12/scan-list-wifi-network-andwork-android/