BluetoothAdapter类介绍以及其常量值介绍

BluetoothAdapter类介绍以及其常量值介绍:

BluetoothAdapter类简单点来说就是代表了本设备(手机、电脑等)的蓝牙适配器对象,通过它我们可以蓝牙设备进行基本开发了,主要有如下功能:

  1. 开关蓝牙设备
  2. 扫描蓝牙设备
  3. 设置/获取蓝牙状态信息,例如:蓝牙状态值、蓝牙Name、蓝牙Mac地址等;

蓝牙常量值介绍

以下常量值可以通过BluetoothAdapter.xxx找到

1.开关状态值

蓝牙关闭 : int STATE_OFF, 值为10, 蓝牙模块处于关闭状态;

蓝牙打开中 : int STATE_TURNING_ON, 值为11, 蓝牙模块正在打开;

蓝牙开启 : int STATE_ON, 值为12, 蓝牙模块处于开启状态;

蓝牙开启中 : int STATE_TURNING_OFF , 值为13, 蓝牙模块正在关闭;

蓝牙开关状态顺序 : STATE_OFF –> STATE_TURNING_ON –> STATE_ON –> STATE_TURNING_OFF –> STATE_OFF;

2.扫描状态值

无功能状态 : int SCAN_MODE_NONE 值为20, 查询扫描和页面扫描都失效, 该状态下蓝牙模块既不能扫描其它设备, 也不可见;

扫描状态 : int SCAN_MODE_CONNECTABLE 值为21, 查询扫描失效, 页面扫描有效, 该状态下蓝牙模块可以扫描其它设备, 从可见性来说只对已配对的蓝牙设备可见, 只有配对的设备才能主动连接本设备;

可见状态 : int SCAN_MODE_CONNECTABLE_DISCOVERABLE 值为23, 查询扫描和页面扫描都有效;

3.蓝牙操作接收的广播常量值

开始搜索广播 : String ACTION_DISCOVERY_STARTED, 蓝牙适配器开始搜索远程设备, 值为”android.bluetooth.action.DISCOVERY_START”, 蓝牙适配器开始搜索之后, 会先有12秒的查询扫描(12s内可见), 查询扫描后进行页面扫描(主动搜索), 需要BLUETOOTH权限;

设备查找非常消耗资源, 在查找的过程中, 不能连接远程的蓝牙设备, 已经存在的连接也要限制带宽, 如果想要执行除查找外的其它操作, 之前最好调用cancelDiscovery();

搜索完成广播 : String ACTION_DISCOVERY_FINISHED,蓝牙适配器完成搜索发出的广播, 值为”android.bluetooth.adapter.action.DISCOVERY_FINISHED”, 需要BLUETOOTH权限;

蓝牙名称改变广播 : String ACTION_LOCAL_NAME_CHANGED,本地的蓝牙适配器改变了自己的名称, 值为”android.bluetooth.adapter.action.LOCAL_NAME_CHANGED”, 注意改变的是本设备名称, 不是远程设备的.这个广播包含一个EXTRA_LOCAL_NAME附加域, 需要BLUETOOTH权限;

扫描模式变化广播 : String ACTION_SCAN_MODE_CHANGED, 蓝牙模块扫描模式发生了变化, 值为”android.bluetooth.adapter.action.SCAN_MODE_CHANGED”, 该Intent对象包含了EXTRA_SCAN_MODE和EXTRA_PREVIOUS_SCAN_MODE, 两个附加域分别是新的和旧的扫描模式, 这里可以根据前后扫描模式的不同做出不同的操作, 需要BLUETOOTH权限;

开关模式变化广播 : String ACTION_STATE_CHANGED, 蓝牙模块被打开或者关闭, 值为”android.bluetooth.adapter.action.STATE_CHANGED”, 该广播的Intent中包含EXTRA_STATE和EXTRA_PREVIOUS_STATE两个附加域, 需要BLUETOOTH权限;

4.蓝牙操作请求的广播常量值

开启蓝牙 : String ACTION_REQUEST_ENABLE, 打开蓝牙, 值为”android.bluetooth.adapter.action.REQUEST_ENABLE”

Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, requestCode);

*可以在Activity中的onActivityResult()方法中处理结果, 如果蓝牙模块打开成功, 则返回结果吗RESULT_OK; 如果蓝牙模块打开失败, 则返回结果码RESULT_CANCELED;
打开和关闭蓝牙模块, 都可以通过ACTION_STATE_CHANGED广播来监听;*

蓝牙可见 : String ACTION_REQUEST_DISCOVERABLE, 使蓝牙可见, 值为”android.bluetooth.adapter.action.REQUEST_DISCOVERABLE”, 默认的可见时间为120s, 可以在广播中添加附加域, 设置任意的可见时间, 附加域为EXTRA_DISCOVERABLE_DURATION, 需要BLUETOOTH权限;

可以在Activity中的onActivityResult()方法中处理结果, 如果蓝牙模块设置可见成功, 则返回结果吗RESULT_OK; 如果蓝牙模块设置可见失败, 则返回结果码RESULT_CANCELED;

Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
startActivityForResult(discoverableIntent,resultCode)

6.附加域常量值

附加域是放在Intent中的, 使用Intent.putExtra(附加域,附加值)方法添加附加域;

可见时间附加域 : String EXTRA_DISCOVERABLE_DURATION 存放的是ACTION_REQUEST_DISCOVERABLE广播的可见时长, 值为”android.bluetooth.adapter.extra.DISCOVERABLE_DURATION”;

扫描模式附加域 : 这两个附加域的值是扫描模式, 可以为SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE, SCAN_MODE_CONNECTABLE_DISCOVERABLE;

*String EXTRA_SCAN_MODE : 值为”android.bluetooth.adapter.extra.SCAN_MODE”;
String EXTRA_PREVIOUS_SCAN_MODE : 值为”android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE”;*

开关状态附加域 : 这两个附加域的值是开关状态, 可以为STATE_OFF, STATE_ON, STATE_TURNING_OFF, STATE_TURNING_ON;

String EXTRA_STATE : 值为”android.bluetooth.adapter.extra.STATE”;

String EXTRA_PREVIOUS_STATE : 值为”android.bluetooth.adapter.extra.PREVIOUS_STATE”;

蓝牙名称附加域 : String EXTRA_LOCAL_NAME, 存放ACTION_LOCAL_NAME_CHANGED附加域的附加值, 值为”android.bluetooth.adapter.extra.LOCAL_NAME”;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值