Cấu hình Bluetooth

API Bluetooth có hỗ trợ làm việc với cấu hình Bluetooth. Cấu hình Bluetooth là thông số kỹ thuật của giao diện không dây để giao tiếp dựa trên Bluetooth giữa các thiết bị, chẳng hạn như cấu hình Rảnh tay. Để một thiết bị di động kết nối với tai nghe không dây, cả hai thiết bị đều phải hỗ trợ hồ sơ rảnh tay.

API Bluetooth cung cấp các phương thức triển khai cho các cấu hình Bluetooth sau:

  • Tai nghe. Cấu hình Tai nghe hỗ trợ việc sử dụng tai nghe Bluetooth với điện thoại di động. Android cung cấp lớp BluetoothHeadset, là proxy để kiểm soát Dịch vụ tai nghe Bluetooth. Cấu hình này bao gồm cả Tai nghe Bluetooth và cấu hình rảnh tay (phiên bản 1.5). Lớp BluetoothHeadset có tính năng hỗ trợ các lệnh AT. Để biết thêm về chủ đề này, hãy xem phần Lệnh AT dành riêng cho nhà cung cấp.
  • A2DP. Cấu hình Cấu hình phân phối âm thanh nâng cao (A2DP) xác định cách truyền âm thanh chất lượng cao từ thiết bị này sang thiết bị khác qua kết nối Bluetooth. Android cung cấp lớp BluetoothA2dp, là proxy để kiểm soát Dịch vụ Bluetooth A2DP.
  • Thiết bị sức khoẻ. Android cung cấp tính năng hỗ trợ cho Hồ sơ thiết bị sức khoẻ Bluetooth (HDP). Điều này cho phép bạn tạo các ứng dụng dùng Bluetooth để giao tiếp với các thiết bị sức khoẻ hỗ trợ Bluetooth, chẳng hạn như máy đo nhịp tim, máy đo máu, nhiệt kế, cân, v.v. Để biết danh sách các thiết bị được hỗ trợ và mã chuyên môn về dữ liệu thiết bị tương ứng, hãy xem phần Chuyên môn về dữ liệu thiết bị HDP của Bluetooth. Các giá trị này cũng được tham chiếu trong quy cách ISO/IEEE 11073-20601 [7] như MDC_DEV_SPEC_PROFILE_* trong Phụ lục Mã danh mục. Để biết thêm thông tin về HDP, hãy xem phần Hồ sơ thiết bị sức khoẻ.

Dưới đây là các bước cơ bản để làm việc với một trang doanh nghiệp:

  1. Lấy bộ chuyển đổi mặc định, như mô tả trong phần Thiết lập Bluetooth.
  2. Thiết lập một BluetoothProfile.ServiceListener. Trình nghe này sẽ thông báo cho các ứng dụng BluetoothProfile khi họ đã được kết nối hoặc ngắt kết nối khỏi dịch vụ.
  3. Sử dụng getProfileProxy() để thiết lập kết nối với đối tượng proxy hồ sơ được liên kết với hồ sơ. Trong ví dụ sau, đối tượng proxy của hồ sơ là một thực thể của BluetoothHeadset.
  4. Trong onServiceConnected(), hãy tìm hiểu đối tượng proxy hồ sơ.
  5. Sau khi bạn có đối tượng proxy hồ sơ, hãy sử dụng đối tượng đó để theo dõi trạng thái kết nối và thực hiện các thao tác khác liên quan đến hồ sơ đó.

Đoạn mã sau đây cho biết cách kết nối với một đối tượng proxy BluetoothHeadset để bạn có thể kiểm soát hồ sơ Tai nghe:

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);

Lệnh AT dành riêng cho nhà cung cấp

Ứng dụng có thể đăng ký nhận tin do hệ thống truyền ra về các lệnh AT dành riêng cho nhà cung cấp được xác định trước được gửi qua tai nghe (chẳng hạn như lệnh Plantronics +XEVENT). Ví dụ: một ứng dụng có thể nhận các thông báo cho biết mức pin của thiết bị đã kết nối và có thể thông báo cho người dùng hoặc thực hiện hành động khác nếu cần. Tạo broadcast receiver cho ý định ACTION_VENDOR_SPECIFIC_HEADSET_EVENT để xử lý các lệnh AT dành riêng cho nhà cung cấp cho tai nghe.

Hồ sơ thiết bị sức khoẻ

Android hỗ trợ Bluetooth Health Device Profile (HDP). API Bluetooth Health bao gồm các lớp BluetoothHealth, BluetoothHealthCallbackBluetoothHealthAppConfiguration, được mô tả trong Các lớp và giao diện chính.

Khi sử dụng Bluetooth Health API, bạn nên hiểu các khái niệm chính sau đây của HDP:

Nguồn
Một thiết bị y tế, chẳng hạn như cân cân, máy đo đường huyết hoặc nhiệt kế có thể truyền dữ liệu y tế đến một thiết bị thông minh, chẳng hạn như điện thoại hoặc máy tính bảng Android.
Bồn lưu trữ dữ liệu
Thiết bị thông minh nhận dữ liệu y tế. Trong ứng dụng HDP, bồn lưu trữ dữ liệu được biểu thị bằng một đối tượng BluetoothHealthAppConfiguration.
Đăng ký
Quy trình dùng để đăng ký bồn lưu trữ dữ liệu để giao tiếp với một thiết bị sức khoẻ cụ thể.
Sự kết nối
Quy trình dùng để mở kênh giữa một thiết bị sức khoẻ (nguồn) và một thiết bị thông minh (bể chứa).

Tạo ứng dụng HDP

Dưới đây là các bước cơ bản để tạo một ứng dụng HDP:

  1. Lấy thông tin tham chiếu đến đối tượng proxy BluetoothHealth. Giống như với các thiết bị tai nghe thông thường và thiết bị có hồ sơ A2DP, bạn phải gọi getProfileProxy() bằng BluetoothProfile.ServiceListener và loại hồ sơ HEALTH để thiết lập kết nối với đối tượng proxy hồ sơ.

  2. Tạo BluetoothHealthCallback và đăng ký cấu hình ứng dụng (BluetoothHealthAppConfiguration) đóng vai trò là bồn lưu trữ dữ liệu tình trạng.

  3. Thiết lập kết nối với thiết bị sức khoẻ.

  4. Khi kết nối thành công với một thiết bị sức khoẻ, hãy đọc và ghi vào thiết bị sức khoẻ bằng chỉ số mô tả tệp. Dữ liệu nhận được cần được diễn giải bằng trình quản lý sức khoẻ. Trình quản lý này sẽ triển khai quy cách IEEE 11073.

  5. Khi hoàn tất, hãy đóng kênh tình trạng và huỷ đăng ký ứng dụng. Kênh này cũng sẽ đóng khi có một khoảng thời gian không hoạt động trong thời gian dài.