您的应用必须先通过蓝牙或蓝牙低功耗技术进行通信,
您需要确认设备是否支持蓝牙,如果支持,
请确保它已启用请注意,只有在
<uses-feature.../>
清单文件条目中的 android:required
属性为
已设置为 false
。
如果不支持蓝牙,则应正常停用所有蓝牙 功能。如果支持蓝牙,但该功能已禁用,则您可以请求 用户无需离开应用即可启用蓝牙。
第一步是 添加蓝牙权限 添加到清单文件中,以便使用以下 API。
获得相应权限后,蓝牙设置会分两步完成
使用 BluetoothAdapter
:
获取
BluetoothAdapter
。所有蓝牙 activity 都需要
BluetoothAdapter
。通过BluetoothAdapter
表示设备自己的蓝牙适配器( 蓝牙无线装置)。要获取BluetoothAdapter
,您首先需要Context
。使用此上下文获取BluetoothManager
的实例 系统服务正在呼叫BluetoothManager#getAdapter
将为您提供BluetoothAdapter
对象。如果getAdapter()
返回 null, 则表示设备不支持蓝牙。例如:
Kotlin
val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java) val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
Java
BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
启用蓝牙。
接下来,您需要确保已启用蓝牙。致电
isEnabled()
至 检查目前是否启用了蓝牙。如果此方法返回 false 则表示蓝牙处于停用状态。要请求启用蓝牙,请调用startActivityForResult()
、 传入ACTION_REQUEST_ENABLE
intent 操作。此调用会发出通过 系统设置(无需停止您的应用)。例如:
Kotlin
if (bluetoothAdapter?.isEnabled == false) { val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT) }
Java
if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
系统会显示一个对话框,请求用户授予启用蓝牙的权限,如 图 1.如果用户授予权限,系统将开始启用蓝牙, 并在过程完成(或失败)后将焦点返回到您的应用中。
图 1. 启用蓝牙对话框。
REQUEST_ENABLE_BT
常量传递给
startActivityForResult()
是一个局部定义的整数,必须大于或等于 0。系统
在您的
onActivityResult()
实现为 requestCode
参数。
如果成功启用蓝牙,您的 Activity 会收到
RESULT_OK
结果代码,位于
onActivityResult()
回调。如果由于出现错误(或
用户响应了“Deny”),则结果代码为
RESULT_CANCELED
。
(可选)您的应用还可以监听
ACTION_STATE_CHANGED
广播 intent,每当蓝牙状态发生变化时,系统都会广播
更改。此广播包含 extra 字段
EXTRA_STATE
和
EXTRA_PREVIOUS_STATE
,
分别包含新旧蓝牙状态。可能的值
这些额外字段是
STATE_TURNING_ON
、
STATE_ON
,
STATE_TURNING_OFF
,
和 STATE_OFF
。
如果您的应用需要检测运行时,监听此广播会非常有用
对蓝牙状态所做的更改。
在设备上启用蓝牙后,您就可以同时使用标准蓝牙和 蓝牙低功耗。
对于蓝牙低功耗,您可以查找 BLE 设备、连接到 GATT 服务器,以及 传输 BLE 数据。