2017-12-20 15 views
1

タッチスクリーン付きのRaspberry Pi 3でAndroidのものを実行しています。AndroidでWi-Fiネットワークをスキャンすると空リストが返される

私は自分のアプリをWifiManagerクラスを使用して利用可能なWi-Fiネットワークに接続するための独自のGUIを作成しようとしています。ただし、getScanResults()関数は、IoTランチャでスキャンされたWi-Fiネットワークを見ることができる場合でも、空のリストを返します。リモート例外がある場合

私はドキュメント(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> 

ありがとう!

+0

'wifiManager.getConfiguredNetworks(); 'の結果が表示されますか? –

+0

@NickFelkerはい、これまでに接続していたすべてのWifiネットワークのリストを返します(もちろん私が現在接続しているもの) – Tur1ng

+0

'' –

答えて

2

AndroidでのWi-Fiスキャンは非同期メカニズムです。

  1. まず、具体的なインテント:SCAN_RESULTS_AVAILABLE_ACTIONに登録する必要があります。

  2. 次に使用してスキャンを開始:startScan()

  3. あなたは以下の記事でより多くの情報を見つけることができますgetScanResults()

を呼び出すことができ、あなたの放送受信機のonReceive()メソッドで:https://www.nplix.com/2017/03/12/scan-list-wifi-network-android/

関連する問題