首先加入定位权限,和WIFI状态访问权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!--访问位置权限-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><!--更改wifi状态权限-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--访问wifi状态权限-->
开启定位并获取连接wifi名称
private final int REQUEST_LOCATION = 201;
@RequiresApi(api = Build.VERSION_CODES.M)
private void initView() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {//未开启定位权限
//开启定位权限,201是标识码
this.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
} else {
if (!"unknown ssid".equals(getConnectWifiSsid())) {
binding.tvWifiName.setText(getConnectWifiSsid());
}
}
}
private String getConnectWifiSsid() {//获取wifi名称并去掉双引号
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
return wifiInfo.getSSID().replace("\"", "").replace("<", "").replace(">", "");
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_LOCATION:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {//用户同意权限,执行我们的操作
if (!"unknown ssid".equals(getConnectWifiSsid())) {
binding.tvWifiName.setText(getConnectWifiSsid());
}
} else {//用户拒绝之后,当然我们也可以弹出一个窗口,直接跳转到系统设置页面
Toast.makeText(this, "未开启定位权限,请到设置去开启权限", Toast.LENGTH_SHORT).show();
}
break;
}
}