我的设备sdk版本25和marshmallow。
所以,我使用wifi扫描这个来源。
public List<String> getScanWifiResult() {
List<ScanResult> result;
mWifiManager.startScan();
result = mWifiManager.getScanResult();
ArrayList<String> ssids = new ArrayList<String>();
if (result != null) {
for (ScanResult scan : resultList) {
ssids.add(scan.SSID);
}
}
return ssids;
}
如果我在kitkat设备上Log.d("DDD", "result->" + result)
,当前的无线网络显示。
但是在棉花糖设备上。空值..
所以,我搜索谷歌。
首先我添加清单
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
并添加manifest check code
private List<String> result;
@Override
public void onClick(View v) {
if (v.getId() == R.id.scan_btn) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {Manifest.permission.ACCESS_COARSE_LOCATION}, 111};
} else {
result = getScanWifiResult();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == 111) {
result = getScanWifiResult();
}
}
另外,marshmallow设备wifi扫描值为null。
如何在android marshmallow设备上获得wifi扫描结果?