一、蓝牙开发之-权限申请, 直接上代码

第一步、在 AndroidManifest.xml 中 声明下需要的权限

android:name="android.permission.BLUETOOTH"

android:maxSdkVersion="30" />

android:name="android.permission.BLUETOOTH_ADMIN"

android:maxSdkVersion="30" />

android:name="android.hardware.bluetooth"

android:required="true" />

android:name="android.hardware.bluetooth_le"

android:required="true" />

第二步、在业务流程中 去申请权限

这里使用的是 EasyPermissions 权限申请

//Android 12 需要申请的权限

var perms12 = arrayOf(

Manifest.permission.ACCESS_FINE_LOCATION,

Manifest.permission.BLUETOOTH_SCAN,

Manifest.permission.BLUETOOTH_CONNECT

)

//检测权限的方法

private fun checkPermissions() {

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.S|| Build.VERSION.SDK_INT == Build.VERSION_CODES.S_V2) {

     //Android 12 权限判断   

if (!EasyPermissions.hasPermissions(

requireContext(),

*perms12

)

) {

EasyPermissions.requestPermissions(

requireActivity(),

"此功能需要位置信息权限与附近的设备权限,请设置",

1001,

*perms12

)

} else {

            //去扫描搜索蓝牙

goScanBle()

}

}else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) {

if (!EasyPermissions.hasPermissions(

requireContext(),

Manifest.permission.ACCESS_FINE_LOCATION,

)

) {

EasyPermissions.requestPermissions(

requireActivity(),

"此功能需要位置信息权限与附近的设备权限,请设置",

1001,

Manifest.permission.ACCESS_FINE_LOCATION,

)

} else {

   //去扫描搜索蓝牙

goScanBle()

}

}

}

//权限通过后 再去检测下

/**

* 权限通过

*/

override fun onPermissionsGranted(requestCode: Int, perms: MutableList) {

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.S||Build.VERSION.SDK_INT == Build.VERSION_CODES.S_V2) {

if (EasyPermissions.hasPermissions(

requireContext(),

*perms12

)

) {

goScanBle()

} else {

Log.i("权限","-----onPermissionsGranted-------")

}

}else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) {

if (EasyPermissions.hasPermissions(

requireContext(),

Manifest.permission.ACCESS_FINE_LOCATION,

)

) {

goScanBle()

} else {

Log.i("权限","-----onPermissionsGranted-------")

}

}

}

第三步、权限拿到了,就扫描、连接、进行通信 吧 附上流程图

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: