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 蓝牙相关的广播相关推荐

  1. android 蓝牙相关广播,Android通过广播接收器BroadcastReceiver监听蓝牙连接变化

    上一篇介绍了通过广播对蓝牙的打开关闭等变化的监听,这一篇将对蓝牙连接状态的变化进行封装. 首先是广播接收器BlueToothConnectReceiver 类 import android.bluet ...

  2. Android中需要知道的蓝牙相关常识

    首先蓝牙设备有很多种,需要区分蓝牙设备的类型,市面上主要的蓝牙设置有 蓝牙鼠标,键盘,游戏手柄等 蓝牙耳机 蓝牙音箱 可穿戴的蓝牙手环手表 蓝牙健康设备,电子秤等 因此技术上大体分为经典蓝牙和低功耗( ...

  3. 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★

    文章目录 一.JobServiceContext 引入 二.JobServiceContext 源码分析 三.用户在应用层如何使用 JobScheduler 四.用户提交任务 五.广播接收者监听广播触 ...

  4. android 蓝牙 广播,android蓝牙BLE(三) —— 广播

    ​ 在蓝牙开发中,有些情况是不需要连接的,只要外设广播自己的数据即可,例如苹果的ibeacon.自Android 5.0更新蓝牙API后,手机可以作为外设广播数据. 广播包有两种: 广播包(Adver ...

  5. android接收蓝牙广播,android – 如何使用广播接收器检测蓝牙状态更改?

    就权限而言,为了检测蓝牙的状态变化,您需要将其添加到您的AndroidManifest.xml中. 示例接收器将如下所示,您将此代码添加到要处理广播的位置,例如: private final Broa ...

  6. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  7. Android 9.0 蓝牙功能之一:蓝牙音乐

    Android 9.0 蓝牙功能之一:蓝牙音乐 本章节记录如何构建蓝牙音乐. 文章目录 Android 9.0 蓝牙功能之一:蓝牙音乐 主要流程 相关代码 其他要点: 蓝牙AG_EVENT广播 (手机 ...

  8. 【Android探索】基于Android Studio平台的蓝牙遥控APP

    前言:好久没更新这博客了,接下来有时间记录下前阵子做的东西,当作是复习之余的回顾往事和时间消遣,哈哈.首先是这个蓝牙遥控APP,这个APP是之前做一个小比赛的时候尝试做来玩玩的,主要内容是使用这个AP ...

  9. Android ble连接过程,Android BLE的一些基础知识及相关操作流程 - 全文

    前言: 本文主要描述Android BLE的一些基础知识及相关操作流程,不牵扯具体的业务实现,其中提供了针对广播包及响应包的解析思路,希望对正在或即将面临Android BLE开发的伙伴们有所引导. ...

最新文章

  1. 顺时针打印二维数组C语言递归,按顺时针打印矩阵
  2. 【超赞】技术架构的战略和战术原则
  3. swift_005(Swift的Dictionary 字典)
  4. OSS- OSS brower 登陆失败
  5. a或b search vim_vim编辑器
  6. C++学习笔记(一)
  7. RTT学习笔记2-线程
  8. 3.1Python数据处理篇之Numpy系列(一)---ndarray对象的属性与numpy的数据类型
  9. android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...
  10. python 基础课程第三天
  11. Android应用APP: 基于MobileNet和EfficientNet的图像分类模型_调试运行以及打包Tensorflow官方提供的Image classification demo
  12. 为了方便手机观看,博文最好36个字一行
  13. Excel、CSV文件数据导入MySQL数据库
  14. 通过js获取本机的IP地址
  15. 计算机房设备包含什么,机房设计常用计算公式有哪些
  16. 百度AI的时代献礼:与央视搭AI秀台,让万物智能样貌清晰可见
  17. 云短信使用——阿里云短信使用步骤
  18. Zxing扫码库优化思路
  19. (附源码)ssm+mysql+基于SSM框架的图片分享及评价网站设计与实现 毕业设计201524
  20. 和天然呆恋爱是什么体验?

热门文章

  1. JS简单实现点赞操作
  2. 直击进博会 | SSAB、依维柯、3M、拜耳、辉瑞、罗氏、麦当劳、宝洁等展示最新成果...
  3. 李权晟:11.23今日黄金行情走势分析及布局策略
  4. 中国商用5纳米工艺,技术领先优势获得认可,美国AMD给出5年合同
  5. 互联网公司分布式集群架构图
  6. 学会python能做兼职吗-学完python怎么找兼职呢?
  7. BlueKeep已被大规模利用于植入挖矿软件
  8. 华硕ROG品牌机安装ubuntu双系统
  9. 普通高中化学实验室教学仪器配置
  10. 教你用十分钟编写一个贪吃蛇小游戏