Bluetooth API 支持使用蓝牙配置文件。答 蓝牙配置文件是蓝牙的无线接口规范 例如免提配置文件对于移动设备 连接到无线耳机时,这两部设备都必须支持 免触摸操作配置文件。
Bluetooth API 为以下蓝牙提供了实现 个人资料:
- 耳机。耳机配置文件支持蓝牙耳机
。Android 提供了
BluetoothHeadset
类, 它是用于控制蓝牙耳机服务的代理。这包括 蓝牙耳机和免提 (v1.5) 配置文件。BluetoothHeadset
类包括对 AT 命令的支持。有关此主题的详细信息,请参阅 特定于供应商的 AT 命令。 - A2DP。高级音频分发配置文件 (A2DP) 配置文件定义了
可以通过蓝牙将高品质音频从一台设备流式传输到另一台设备
连接。Android 提供了
BluetoothA2dp
类, 用于控制蓝牙 A2DP 服务的代理。 - 健康设备。Android 支持蓝牙健康设备
个人资料 (HDP)。这样,您就可以创建使用蓝牙进行通信的应用
支持蓝牙的健康设备,如心率监测仪、血液监测器
米、温度计、体重秤等如需查看受支持设备的列表
相应的设备数据专精化代码,请参阅蓝牙的 HDP
设备数据
专精领域认证。
ISO/IEEE 11073-20601 [7] 规范中也提到了这些值
以
MDC_DEV_SPEC_PROFILE_*
的形式指定。有关 有关 HDP 的信息,请参阅健康设备配置文件。
以下是使用配置文件的基本步骤:
- 获取默认适配器,如 蓝牙设置。
- 设置
BluetoothProfile.ServiceListener
。 此监听器会BluetoothProfile
个客户 当设备连接到服务或断开服务连接时。 - 使用
getProfileProxy()
与与规则相关联的配置文件代理对象 个人资料。在以下示例中,配置文件代理对象是BluetoothHeadset
。 - 在
onServiceConnected()
、 获取配置文件代理对象的句柄。 - 获得配置文件代理对象后,使用该对象监控 连接并执行与该配置文件相关的其他操作。
以下代码段展示了如何连接到 BluetoothHeadset
代理
对象,以便您可以控制耳机配置文件:
Kotlin
var bluetoothHeadset: BluetoothHeadset? = null // Get the default adapter val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() private val profileListener = object : BluetoothProfile.ServiceListener { override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = proxy as BluetoothHeadset } } override fun onServiceDisconnected(profile: Int) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null } } } // Establish connection to the proxy. bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET) // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)
Java
BluetoothHeadset bluetoothHeadset; // Get the default adapter BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() { public void onServiceConnected(int profile, BluetoothProfile proxy) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = (BluetoothHeadset) proxy; } } public void onServiceDisconnected(int profile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null; } } }; // Establish connection to the proxy. bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET); // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter.closeProfileProxy(bluetoothHeadset);
供应商特定的 AT 命令
应用可以注册以接收预定义供应商专用 AT 的系统广播
命令(如 Plantronics +XEVENT 命令)。例如:
应用可以接收指示已连接设备的电池电量的广播
并根据需要通知用户或采取其他操作创建广播
接收器
ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
intent 为耳机处理特定于供应商的 AT 命令。
健康设备配置文件
Android 支持蓝牙健康设备配置文件 (HDP)。蓝牙运行状况
API 包含
BluetoothHealth
、
BluetoothHealthCallback
,
和
BluetoothHealthAppConfiguration
,
具体请参阅关键类和
接口。
使用 Bluetooth Health API 时,了解这些关键 HDP 会很有帮助 概念:
- 源代码
- 健康设备,如体重秤、血糖仪或温度计; 将医疗数据传输到智能设备,例如 Android 手机或平板电脑。
- 接收器
- 接收医疗数据的智能设备。在 HDP 应用中,
接收器由一个
BluetoothHealthAppConfiguration
对象表示。 - 注册
- 用于注册接收器以与特定运行状况进行通信的过程。 设备。
- 连接
- 用于在健康设备(来源)和 智能设备(接收器)。
创建 HDP 应用
以下是创建 HDP 应用所涉及的基本步骤:
获取对
BluetoothHealth
代理对象的引用。与常规广告一样 耳机和 A2DP 配置文件设备,则必须使用getProfileProxy()
BluetoothProfile.ServiceListener
和HEALTH
个人资料类型 来与配置文件代理对象建立连接。创建
BluetoothHealthCallback
并注册应用配置 (BluetoothHealthAppConfiguration
)。建立与健康设备的连接。
成功连接到健康设备后,对健康状况进行读写 控制设备接收到的数据需要 运行状况管理器,这实现了 IEEE 11073 规范。
完成后,关闭健康通道并取消注册该应用。该频道还 在长时间闲置时关闭。