设置蓝牙

设置蓝牙

在您的应用能够通过蓝牙或低功耗蓝牙通信之前,您需要验证设备是否支持蓝牙,如果支持,则需确保其已启用。请注意,仅当清单文件中的 条目中的 android:required 属性设置为 false 时,才需要执行此检查。

如果不支持蓝牙,则应优雅地禁用所有蓝牙功能。如果支持蓝牙但未启用,则可以请求用户启用蓝牙,而无需离开您的应用。

第一步是将蓝牙权限添加到您的清单文件中,以便使用以下 API。

权限就位后,使用 BluetoothAdapter,通过两个步骤即可完成蓝牙设置:

获取 BluetoothAdapter。

所有蓝牙活动都需要 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. 启用蓝牙对话框。

传递给 startActivityForResult() 的 REQUEST_ENABLE_BT 常量是一个本地定义的整数,必须大于或等于 0。系统会在您的 onActivityResult() 实现中将其作为 requestCode 参数传回给您。

如果启用蓝牙成功,您的 Activity 将在 onActivityResult() 回调中收到 RESULT_OK 结果代码。如果由于错误(或用户响应“拒绝”)导致蓝牙未启用,则结果代码为 RESULT_CANCELED。

此外,您的应用还可以监听 ACTION_STATE_CHANGED 广播 intent,系统会在蓝牙状态发生变化时广播此 intent。此广播包含额外字段 EXTRA_STATE 和 EXTRA_PREVIOUS_STATE,分别包含新的和旧的蓝牙状态。这些额外字段的可能值包括 STATE_TURNING_ON、STATE_ON、STATE_TURNING_OFF 和 STATE_OFF。如果您的应用需要检测蓝牙状态的运行时更改,监听此广播会很有用。

提示:启用可检测性会自动启用蓝牙。如果您打算在执行蓝牙活动之前始终启用设备可检测性,则可以跳过前面步骤中的第 2 步。

设备上启用蓝牙后,您可以使用传统蓝牙和低功耗蓝牙。

对于传统蓝牙,您可以查找蓝牙设备并连接蓝牙设备。

对于低功耗蓝牙,您可以查找 BLE 设备、连接到 GATT 服务器并传输 BLE 数据。

相关推荐

如何用 FluxAI.art 修改图片文字
bet·365官方网站

如何用 FluxAI.art 修改图片文字

📅 08-15 👁️ 3049
捕鱼游戏推荐哪个好玩不坑
beat365唯一的网址

捕鱼游戏推荐哪个好玩不坑

📅 10-15 👁️ 4109
京东商城如何修改收货地址
365体育app手机版下载

京东商城如何修改收货地址

📅 09-28 👁️ 7339

友情链接