蓝牙开发之-Android12及以下权限申请 及蓝牙详细流程图

这篇具有很好参考价值的文章主要介绍了蓝牙开发之-Android12及以下权限申请 及蓝牙详细流程图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

<!--声明后台定位权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission
    android:name="android.permission.BLUETOOTH"
    android:maxSdkVersion="30" /> <!-- 申明该权限不适用于安卓12及以上 -->
<uses-permission
    android:name="android.permission.BLUETOOTH_ADMIN"
    android:maxSdkVersion="30" /> <!-- 申明该权限不适用于安卓12及以上 -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />

<uses-feature
    android:name="android.hardware.bluetooth"
    android:required="true" /> <!-- 申明手机需要支持蓝牙 -->
<uses-feature
    android:name="android.hardware.bluetooth_le"
    android:required="true" /> <!-- 申明手机需要支持BLE -->
第二步、在业务流程中 去申请权限  
这里使用的是 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<String>) {
    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-------")
        }
    }
}

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

android12适配蓝牙权限,Ble蓝牙,android文章来源地址https://www.toymoban.com/news/detail-850254.html

到了这里,关于蓝牙开发之-Android12及以下权限申请 及蓝牙详细流程图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 开发中的权限申请

            我们都知道,从 Android 6.0 开始,部分危险权限在 xml 注册的同时,还需要动态申请。 1、需要动态申请的权限         需要动态申请的权限主要分为这 9 类,当然每类中可能不止一个权限,但只要动态申请一个就默认获取整个类别的权限。 2、申请单个权限   

    2024年02月09日
    浏览(55)
  • 极路由怎么申请开发者权限?极路由开发者模式的详细教程

    极路由最新固件已经开通了root权限,供有经验的同学自助开发插件。鉴于部分同学依然不知道如何申请开发者权限,懒蛇写这篇教程简单讲一下申请过程。 1、浏览器输入192.168.199.1,进入极路由管理页面,点击进入云平台。 2、云平台选择“路由器信息” 3、滚动到页面底部

    2024年02月08日
    浏览(61)
  • android studio开发——android11版本以上权限动态申请问题,包括文件读写、图片、相机的调用

    用于android手机的升级,现在已经是android13版本了,对于权限问题可能更加敏感了,前段时间开发发现之前的方法已经不再适用于android11以后的版本了 读写权限申请最好是跳转到设置中进行才是最好了,下面我们开始进行 首先是AndroidManifest.xml文件的权限 然后这里讲解一下权

    2024年02月10日
    浏览(58)
  • Android蓝牙使能流程图(Android Bluetooth enable) -- java & jni层

    在介绍Android enable流程之前,我们首先来看下Android的流程图 以上图示是android8以上的,主要跟Android8之前的架构在于Bluetooth stack跟vendor层之间增加一层HIDL,主要是抽象硬件层的作用 OK,回归主题,我们来看下Android的enable流程,首先上一张架构图 另外声明下:我们做了一些列

    2024年02月09日
    浏览(44)
  • Android权限申请之动态申请权限

    先上图: 对于一些危险权限在AndroidManifest清单文件中申请之后,还需要得到用户的许可并打开,才算是真正的开启了这个权限。所以可以使用动态申请权限,对于某个功能,如果需要开启某个权限,在用户使用它之前,弹窗提示用户是否要开启这个权限。 动态申请权限大致

    2024年02月11日
    浏览(57)
  • Android动态申请权限(运行时申请权限)

    目录 1.需要动态申请权限的原因 2.Android权限动态申请 1.需要动态申请权限的原因   首先,Android权限分为大致两类,一类是普通权限,一类是危险权限,准确地讲其实还有一些特殊的权限,不过这些权限使用得相对较少,我们大致跳过.对于普通权限,系统会自动帮我们进行授权,由于

    2024年02月20日
    浏览(46)
  • RK3588平台开发系列讲解(安卓篇)Android12 获取 root 权限

    沉淀、分享、成长,让自己和他人都能有所收获!😄 📢获取 Android 设备的 root 权限是指取得超级用户( root 用户)的权限,使得用户可以对系统进行更广泛的修改和操作。但需要注意,获取 root 权限可能会导致安全风险,包括系统不稳定、数据丢失或设备损坏,因此应该谨

    2024年02月03日
    浏览(98)
  • Android申请权限(相机权限和读写权限)

    开发一个相机应用,需要申请三个权限:相机、读文件、写文件。 初步授权成功

    2024年02月11日
    浏览(54)
  • Android之动态申请权限

    Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户。在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予。 Android 6.0以下,在AndroidManifest.xml文件中注册权限即可。 Android 6.0及其以后,既

    2024年02月04日
    浏览(47)
  • Android动态申请权限

    一、在AndroidManifest清单文件中声明要开启的权限 二、代码中动态申请相关权限

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包