Thiết lập Bluetooth

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:

  1. Tải BluetoothAdapter.

    Cần có BluetoothAdapter cho mọi hoạt động Bluetooth. Chiến lược phát hành đĩa đơn BluetoothAdapter đại diện cho bộ điều hợp Bluetooth của thiết bị (mã đài qua Bluetooth). Để nhận BluetoothAdapter, 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ủa BluetoothManager dịch vụ hệ thống của Google. Đang gọi BluetoothManager#getAdapter sẽ cung cấp cho bạn một đối tượng BluetoothAdapter. Nếu getAdapter() 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
    }
    
  2. 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ọi startActivityForResult()! đ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_STATEEXTRA_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.

Mẹo: Khi bạn bật khả năng phát hiện, hệ thống sẽ tự động bật chế độ này Bluetooth. Nếu trước đó bạn định bật tính năng phát hiện thiết bị một cách nhất quán khi thực hiện hoạt động Bluetooth, bạn có thể bỏ qua bước 2 trong các bước trước đó.

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ị Bluetoothkế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ủ GATTchuyển dữ liệu BLE.