我想在我的棉花糖设备上获取 WiFi 扫描结果。
首先,我所在的地区有很多 wifi AP。
如果在棉花糖设备上获取 WiFi 扫描结果。添加ACCESS_COARSE_LOCATION
允许。
我的来源
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
int permissionResult = checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION);
if (permissionResult == PackageManager.PERMISSION_DENIED) {
if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION)) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("need permission")
.setMessage("permission grant?")
.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1000);
}
}
}).setNegativeButton("no", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "cancel", Toast.LENGTH_LONG).show();
}
}).create().show();
} else {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1000);
}
} else {
result = getScanWifiResult();
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 1000) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "request permission");
result = mUtils.getScanWifiResult();
}
} else {
Toast.makeText(MainActivity.this, "permission denied", Toast.LENGTH_LONG).show();
}
}
}
public List<String> getScanWifiResult() {
List<ScanResult> result;
mWifiManager.startScan(); // service register
result = mWifiManager.getScanResults();
ArrayList<String> ssid = new ArrayList<String>();
if (result != null) {
for (ScanResult scan : result) {
ssid.add(scan.SSID);
}
}
return ssid;
}
在棉花糖设备或 gradle 上使用此源targetSdkVersion
23以上。
wifi 扫描结果为 null,但对于 gradle targetSdkVersion 低于 21 或 kitkat 设备。
wifi扫描结果很多wifi ap。
为什么棉花糖设备上的 wifi 扫描结果为空?
因为你在里面调用它else
的声明if(permission == denied)
Your result = getScanWifiResult()
应该在 if-else 语句的权限之外。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)