android 蓝牙相关广播,Android 蓝牙相关的广播
Android 蓝牙相关的广播
监听蓝牙相关的广播并获得相关的信息,蓝牙相关的广播主要集中在BluetoothAdapter和BluetoothDevice类中,
可以通过在AndroidManifest.xml中注册静态广播,也可以通过在代码中注册动态广播,两种形式的广播都可以监听到
需要相关的权限
蓝牙开关状态的广播
蓝牙的开关状态int STATE_OFF = 10; //蓝牙关闭
int STATE_ON = 12; //蓝牙打开
int STATE_TURNING_OFF = 13; //蓝牙正在关闭
int STATE_TURNING_ON = 11; //蓝牙正在打开
对应的广播String ACTION_STATE_CHANGED = "android.bluetooth.adapter.action.STATE_CHANGED"
监听到这个广播之后,通过intent中的EXTRA_STATE获取对应的状态值int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.STATE_OFF);
打开蓝牙的广播
可以通过广播调用系统的activity来打开蓝牙,对应的广播String ACTION_REQUEST_ENABLE = "android.bluetooth.adapter.action.REQUEST_ENABLE";Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
执行这个广播之后,可以通过监听广播ACTION_STATE_CHANGED,来判断蓝牙是否打开
蓝牙扫描的广播
打开蓝牙之后,可以通过方法startDiscovery(),来扫描设备周边可以使用的其他的蓝牙设备,这个方法会触发下面的广播String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED"; //开始扫描
String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED"; //扫描结束
如果扫描到可用的设备,还会触发广播String ACTION_FOUND = "android.bluetooth.device.action.FOUND" //属于类 `BluetoothDevice`注意在6.0之后的设备,如果想监听这个广播,还必须添加权限
在应用中申请ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION,
android.Manifest.permission.ACCESS_FINE_LOCATION},2);
不然在6.0之后的设备中监听不到这个广播
监听到广播ACTION_FOUND,可用获得设备相关的信息BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String name = device.getName();
String addr = device.getAddress(); //还有其他相关的信息
获得设备的UUID的广播
在扫描到设备之后,可用调用方法fetchUuidsWithSdp(),调用这个方法会触发这个广播String ACTION_UUID = "android.bluetooth.device.action.UUID";
通过intent中的EXTRA_UUID,获取设备的UUIDParcelable[] uuidExtra = intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);
for (int i=0; i
String uuid = uuidExtra[i].toString();
}
蓝牙配对的广播
有蓝牙设备的配对请求时,会监听到这个广播String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
蓝牙配对状态的广播
在进行配对时,可用通过监听配对的状态判断设备是否已经配对成功
配对的状态值int BOND_NONE = 10; //配对没有成功
int BOND_BONDING = 11; //配对中
int BOND_BONDED = 12; //配对成功
广播String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
获取值int state = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE); //当前的配对的状态
int state = intent.getIntExtra(BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE, BluetoothDevice.BOND_NONE); //前一次的配对状态
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); //配对的设备信息
蓝牙连接状态的广播
配对之后,连接设备可以通过监听下面的广播,判断设备是否连接成功
连接的状态值int STATE_DISCONNECTED = 0; //未连接
int STATE_CONNECTING = 1; //连接中
int STATE_CONNECTED = 2; //连接成功
广播String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED";
获取值int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE, BluetoothAdapter.ERROR); //当前的连接状态
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE, BluetoothAdapter.ERROR); //前一次的连接状态
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); //连接的设备信息
蓝牙设备的名字变化的广播String ACTION_LOCAL_NAME_CHANGED = "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED" ; //本地设备的蓝牙设备的名称变化 `BluetoothAdapter`
String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED" ;// 远程设备的名称的
android 蓝牙相关广播,Android 蓝牙相关的广播相关推荐
- android 蓝牙相关广播,Android通过广播接收器BroadcastReceiver监听蓝牙连接变化
上一篇介绍了通过广播对蓝牙的打开关闭等变化的监听,这一篇将对蓝牙连接状态的变化进行封装. 首先是广播接收器BlueToothConnectReceiver 类 import android.bluet ...
- Android中需要知道的蓝牙相关常识
首先蓝牙设备有很多种,需要区分蓝牙设备的类型,市面上主要的蓝牙设置有 蓝牙鼠标,键盘,游戏手柄等 蓝牙耳机 蓝牙音箱 可穿戴的蓝牙手环手表 蓝牙健康设备,电子秤等 因此技术上大体分为经典蓝牙和低功耗( ...
- 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
文章目录 一.JobServiceContext 引入 二.JobServiceContext 源码分析 三.用户在应用层如何使用 JobScheduler 四.用户提交任务 五.广播接收者监听广播触 ...
- android 蓝牙 广播,android蓝牙BLE(三) —— 广播
在蓝牙开发中,有些情况是不需要连接的,只要外设广播自己的数据即可,例如苹果的ibeacon.自Android 5.0更新蓝牙API后,手机可以作为外设广播数据. 广播包有两种: 广播包(Adver ...
- android接收蓝牙广播,android – 如何使用广播接收器检测蓝牙状态更改?
就权限而言,为了检测蓝牙的状态变化,您需要将其添加到您的AndroidManifest.xml中. 示例接收器将如下所示,您将此代码添加到要处理广播的位置,例如: private final Broa ...
- 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 : -- 官方文档 : https://develope ...
- Android 9.0 蓝牙功能之一:蓝牙音乐
Android 9.0 蓝牙功能之一:蓝牙音乐 本章节记录如何构建蓝牙音乐. 文章目录 Android 9.0 蓝牙功能之一:蓝牙音乐 主要流程 相关代码 其他要点: 蓝牙AG_EVENT广播 (手机 ...
- 【Android探索】基于Android Studio平台的蓝牙遥控APP
前言:好久没更新这博客了,接下来有时间记录下前阵子做的东西,当作是复习之余的回顾往事和时间消遣,哈哈.首先是这个蓝牙遥控APP,这个APP是之前做一个小比赛的时候尝试做来玩玩的,主要内容是使用这个AP ...
- Android ble连接过程,Android BLE的一些基础知识及相关操作流程 - 全文
前言: 本文主要描述Android BLE的一些基础知识及相关操作流程,不牵扯具体的业务实现,其中提供了针对广播包及响应包的解析思路,希望对正在或即将面临Android BLE开发的伙伴们有所引导. ...
最新文章
- 顺时针打印二维数组C语言递归,按顺时针打印矩阵
- 【超赞】技术架构的战略和战术原则
- swift_005(Swift的Dictionary 字典)
- OSS- OSS brower 登陆失败
- a或b search vim_vim编辑器
- C++学习笔记(一)
- RTT学习笔记2-线程
- 3.1Python数据处理篇之Numpy系列(一)---ndarray对象的属性与numpy的数据类型
- android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...
- python 基础课程第三天
- Android应用APP: 基于MobileNet和EfficientNet的图像分类模型_调试运行以及打包Tensorflow官方提供的Image classification demo
- 为了方便手机观看,博文最好36个字一行
- Excel、CSV文件数据导入MySQL数据库
- 通过js获取本机的IP地址
- 计算机房设备包含什么,机房设计常用计算公式有哪些
- 百度AI的时代献礼:与央视搭AI秀台,让万物智能样貌清晰可见
- 云短信使用——阿里云短信使用步骤
- Zxing扫码库优化思路
- (附源码)ssm+mysql+基于SSM框架的图片分享及评价网站设计与实现 毕业设计201524
- 和天然呆恋爱是什么体验?