android 9.0获取wifi名称,Android8.0 9.0 10.0获取wifi名字问题

一、添加权限

二、申请权限

申请权限框架较多,本人使用的 RxPermissions

android8.0以上需要开启位置信息,如图

android 9.0获取wifi名称,Android8.0 9.0 10.0获取wifi名字问题_第1张图片

android10.0截图

android9.0以上需要申请定位权限

android10.0需要申请新添加的隐私权限ACCESS_FINE_LOCATION详情见android官方10.0重大隐私权变更,如果还需要后台获取或者使用wifi api则还需要申请后台使用定位权限ACCESS_BACKGROUND_LOCATION

三、申请权限代码示例

/**

* 判断是否获取到了定位权限,获取wifi信息需要

*/

private fun rxPermissions() {

//获取必要权限

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {

RxPermissionsUtlis(

this,

RxPermissions(this),

getString(R.string.permissions14),

object : RxPermissionsUtlis.PermissionCallbacks {

override fun onPermissionsGranted() {

if (!LocationUtils.isGpsEnabled()) {

LogUtils.e(TAG, "没有开启GPS定位")

openGpsSettings()

} else {

//获取连接的wifi名称

getConnectWifiSsid()

}

}

override fun onPermissionsDenied() {

finish()

}

},

Manifest.permission.ACCESS_BACKGROUND_LOCATION,

Manifest.permission.ACCESS_FINE_LOCATION,

Manifest.permission.ACCESS_COARSE_LOCATION

)

} else {

RxPermissionsUtlis(

this,

RxPermissions(this),

getString(R.string.permissions1),

object : RxPermissionsUtlis.PermissionCallbacks {

override fun onPermissionsGranted() {

//先判断Android系统,9.0以上除了需要定位权限还需要开启GPS才能获取wifi名字

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {

if (!LocationUtils.isGpsEnabled()) {

LogUtils.e(TAG, "没有开启GPS定位")

openGpsSettings()

}

}

}

override fun onPermissionsDenied() {

finish()

}

},

Manifest.permission.ACCESS_COARSE_LOCATION

)

}

}

/**

* 获取连接wifi的ssid

*

* @return

*/

private fun getConnectWifiSsid(): String {

val wifiManager =

applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager

val wifiInfo = wifiManager.connectionInfo

LogUtils.e(TAG, "wifiInfo==$wifiInfo")

LogUtils.e(TAG, "SSID===${wifiInfo.ssid}")

return wifiInfo.ssid

}

/**

* 打开Gps设置界面

*/

private fun openGpsSettings() {

val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)

startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

}

你可能感兴趣的:(android,9.0获取wifi名称)