实现功能
-
- 检测是否拥有蓝牙权限
- 监视蓝牙开关
- 监视蓝牙连接断开
- 获取蓝牙配对列表
- 获取当前连接的蓝牙信息
1.在AndroidManifest.xml文件中添加蓝牙权限
<!-- 定位权限,用于获取手机的大致或精准位置 于发现附近的蓝牙设备通常是必需的 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 允许应用程序发现和配对蓝牙设备 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADACCESS_FINE_LOCATIONMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- 允许应用程序连接到已配对的蓝牙设备并进行数据传输 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 允许应用发起对蓝牙设备的连接 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
2.在Activity的onCreate方法中进行运行时的动态权限获取(如果是在Activity类里面申请的直接把(Activity) mUniSDKInstance.getContext()替换成this即可。120这可以随便写)
有人问为什么在AndroidManifest.xml文件中添加了蓝牙权限,为什么运行时还要申请一遍
应为在 Android 6.0 (API 级别 23) 及更高版本中,用户需要在运行时授予权限。对于一些需要特殊权限的操作(如定位、读写存储等),仅在 AndroidManifest.xml 文件中声明这些权限是不够的,你还需要在运行时进行权限请求
ActivityCompat.requestPermissions((Activity) mUniSDKInstance.getContext(), new String[]{Manifest.permission.BLUETOOTH}, 120);
注意:这个请求会在手机上面进行UI弹窗,点击允许即可如果点击拒绝会获取不到蓝牙的任何操作
3.创建自定义广播接收器(BroadcastReceiver)。这个类会响应系统发出的关于蓝牙状态的广播
实现
- 监视蓝牙开关
- 监视蓝牙连接断开
- 获取当前连接的蓝牙信息
package io.bluet.uniplugin;
import android.bluetooth.Blu