Trước khi ứng dụng của bạn có thể giao tiếp qua Bluetooth hoặc Bluetooth năng lượng thấp,
bạn cần xác minh xem Bluetooth có được hỗ trợ trên thiết bị không. Nếu có,
hãy đảm bảo bạn đã bật tính năng này. Xin lưu ý rằng bước kiểm tra này chỉ cần thiết nếu
Thuộc tính android:required
trong mục nhập tệp kê khai <uses-feature.../>
là
được đặt thành false
.
Nếu Bluetooth không được hỗ trợ, bạn nên tắt nhẹ mọi Bluetooth các tính năng AI mới. Nếu Bluetooth được hỗ trợ nhưng bị tắt, thì bạn có thể yêu cầu người dùng bật Bluetooth mà không cần rời khỏi ứng dụng của bạn.
Bước đầu tiên là thêm quyền truy cập Bluetooth vào tệp kê khai của bạn để sử dụng các API sau.
Sau khi các quyền đã sẵn sàng, việc thiết lập Bluetooth sẽ được thực hiện qua 2 bước
bằng BluetoothAdapter
:
Tải
BluetoothAdapter
.Cần có
BluetoothAdapter
cho mọi hoạt động Bluetooth. Chiến lược phát hành đĩa đơnBluetoothAdapter
đại diện cho bộ điều hợp Bluetooth của thiết bị (mã đài qua Bluetooth). Để nhậnBluetoothAdapter
, trước tiên, bạn cần cóContext
. Hãy sử dụng ngữ cảnh này để biết một bản sao củaBluetoothManager
dịch vụ hệ thống của Google. Đang gọiBluetoothManager#getAdapter
sẽ cung cấp cho bạn một đối tượngBluetoothAdapter
. NếugetAdapter()
trả về giá trị rỗng, thì thiết bị đó không hỗ trợ Bluetooth.Ví dụ:
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 }
Bật Bluetooth.
Tiếp theo, bạn cần đảm bảo rằng Bluetooth đã được bật. Gọi điện
isEnabled()
đến kiểm tra xem bạn đã bật Bluetooth hay chưa. Nếu phương thức này trả về false, thì Bluetooth sẽ bị tắt. Để yêu cầu bật Bluetooth, hãy gọistartActivityForResult()
! đang truyền một giá trịACTION_REQUEST_ENABLE
thao tác theo ý định. Cuộc gọi này đưa ra yêu cầu bật Bluetooth thông qua cài đặt hệ thống (mà không dừng ứng dụng của bạn).Ví dụ:
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); }
Một hộp thoại sẽ xuất hiện, yêu cầu người dùng cho phép bật Bluetooth, như minh hoạ trong hình 1. Nếu người dùng cấp quyền, hệ thống sẽ bắt đầu bật Bluetooth. và tiêu điểm quay lại ứng dụng của bạn sau khi quá trình này hoàn tất (hoặc không thành công).
Hình 1. Hộp thoại bật Bluetooth.
Hằng số REQUEST_ENABLE_BT
được truyền đến
startActivityForResult()
là một số nguyên được xác định cục bộ phải lớn hơn hoặc bằng 0. Hệ thống
sẽ truyền hằng số này trở lại cho bạn trong
onActivityResult()
dưới dạng tham số requestCode
.
Nếu bật Bluetooth thành công, hoạt động của bạn sẽ nhận được
RESULT_OK
mã kết quả trong
Gọi lại onActivityResult()
. Nếu bạn không bật được Bluetooth do lỗi (hoặc
người dùng trả lời "Từ chối") thì mã kết quả là
RESULT_CANCELED
.
Nếu muốn, ứng dụng của bạn cũng có thể theo dõi
ACTION_STATE_CHANGED
ý định truyền tin mà hệ thống sẽ truyền tin bất cứ khi nào trạng thái Bluetooth
thay đổi. Chương trình phát sóng này chứa các trường bổ sung
EXTRA_STATE
và
EXTRA_PREVIOUS_STATE
,
chứa trạng thái Bluetooth mới và cũ
tương ứng với trạng thái mới. Giá trị có thể cho
các trường bổ sung này
STATE_TURNING_ON
!
STATE_ON
,
STATE_TURNING_OFF
,
và STATE_OFF
.
Việc theo dõi thông báo này có thể hữu ích nếu ứng dụng của bạn cần phát hiện thời gian chạy
đã thực hiện các thay đổi về trạng thái Bluetooth.
Sau khi bật Bluetooth trên thiết bị, bạn có thể sử dụng cả Bluetooth cổ điển và Bluetooth năng lượng thấp.
Đối với Bluetooth phiên bản cũ, bạn có thể tìm thiết bị Bluetooth và kết nối với thiết bị Bluetooth.
Đối với Bluetooth năng lượng thấp, bạn có thể tìm thiết bị BLE, kết nối với máy chủ GATT và chuyển dữ liệu BLE.