2017-12-30 17 views
0

WifiManagerを使用して、使用可能なWi-Fiネットワークのリストを取得しています。WifiManagerを使用してWi-Fiネットワークを取得しない

これは私の方法である:

public List<ScanResult> getWifiInRange() { 

    //scan for wifis 
    wifiMgr.startScan(); 

    // gets ~last~ list of WiFi networks accessible through the access point. 
    return (wifiScan = (List<ScanResult>) wifiMgr.getScanResults()); 
    } 

しかし、この方法は、いくつかのデバイス上の任意のWiFiネットワークをretunしません!例えば

私はAsus_p024にこの方法を使用する場合、それが正しく動作し、利用可能な無線LANネットワークのリストを返しますが、サムスンのタブの上では0アイテムを返します!

更新

私はちょうど私のコードを変更し、このような放送実装:

public class WifiBroadcast extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     List<ScanResult> mScanResults = wifi.getScanResults(); 

     wifiList = wifi.getScanResults(); 
     netCount = wifiList.size(); 

     Log.d("Wifi", "Total Wifi Network" + netCount); 

    } 
    } 

を私はまだそれが可能な無線LANネットワークのリストを取得することはできません。

ありがとうございました。

答えて

1

hereを説明するようにSCAN_RESULTS_AVAILABLE_ACTIONためにBroadcastReceiverを登録してください。 WifiManager.getScanResults()のドキュメント:

最新のアクセスポイントスキャンの結果を返します。

だから我々は、最新のスキャンの結果はPleaeあなたがマニフェストに次の権限が含まれていることを確認getScanResults()

1

への呼び出しで利用可能であることを確信を持っていない:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

さらに、API 23+では、実行時にアクセス権を要求する必要があります。

+0

私はすでにこの2つのアクセス許可を追加しました。 – Ehsan

関連する問題