Profil Bluetooth

Bluetooth API menyertakan dukungan untuk menggunakan profil Bluetooth. J Profil Bluetooth adalah spesifikasi antarmuka nirkabel untuk berbasis Bluetooth komunikasi antar perangkat, seperti profil Hands-Free. Untuk perangkat seluler untuk tersambung ke headset nirkabel, kedua perangkat harus mendukung Profil Handsfree.

Bluetooth API menyediakan implementasi untuk kode profil:

  • Headset. Profil Headset menyediakan dukungan bagi headset Bluetooth agar digunakan untuk ponsel. Android menyediakan Class BluetoothHeadset, yang merupakan {i>proxy<i} untuk mengontrol Layanan Headset Bluetooth. Hal ini mencakup profil Headset Bluetooth dan Hands-Free (v1.5). BluetoothHeadset menyertakan dukungan untuk perintah AT. Untuk informasi selengkapnya tentang topik ini, lihat Perintah AT khusus vendor.
  • A2DP. Profil Advanced Audio Distribution Profile (A2DP) menentukan cara audio berkualitas tinggi dapat di-streaming dari satu perangkat ke perangkat lainnya melalui Bluetooth koneksi jarak jauh. Android menyediakan Class BluetoothA2dp, yang merupakan {i>proxy<i} untuk mengontrol Layanan Bluetooth A2DP.
  • Perangkat Kesehatan. Android menyediakan dukungan untuk Perangkat Bluetooth Health Profil (HDP). Izin ini memungkinkan Anda membuat aplikasi yang menggunakan Bluetooth untuk berkomunikasi dengan perangkat kesehatan yang mendukung Bluetooth, seperti pemantau detak jantung, darah meter, termometer, timbangan, dan sebagainya. Untuk daftar perangkat yang didukung dan kode spesialisasi data perangkat yang sesuai, lihat HDP Bluetooth Data Perangkat Spesialisasi. Nilai-nilai ini juga dirujuk dalam spesifikasi ISO/IEEE 11073-20601 [7] sebagai MDC_DEV_SPEC_PROFILE_* dalam Lampiran Kode Nomenklatur. Untuk selengkapnya melihat informasi tentang HDP, lihat Profil Perangkat Kesehatan.

Berikut adalah langkah-langkah dasar untuk bekerja dengan profil:

  1. Dapatkan adaptor default, seperti yang dijelaskan di Penyiapan Bluetooth.
  2. Siapkan BluetoothProfile.ServiceListener Pemroses ini memberi tahu Klien BluetoothProfile ketika mereka telah terhubung atau terputus dari layanan.
  3. Gunakan getProfileProxy() untuk membuat koneksi ke objek proxy profil yang terkait dengan untuk profil. Dalam contoh berikut, objek proxy profil adalah instance dari BluetoothHeadset.
  4. Di beberapa onServiceConnected(), mendapatkan {i>handle<i} untuk objek {i>proxy<i} profil.
  5. Setelah Anda memiliki objek proxy profil, gunakan objek tersebut untuk memantau status yang terhubung dan melakukan operasi lain yang relevan dengan profil tersebut.

Cuplikan kode berikut menunjukkan cara terhubung ke proxy BluetoothHeadset sehingga Anda dapat mengontrol profil Headset:

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

Perintah AT khusus-vendor

Aplikasi dapat mendaftar untuk menerima siaran sistem dari AT khusus vendor yang telah ditentukan sebelumnya perintah yang dikirimkan oleh headset (seperti perintah Plantronics +XEVENT). Misalnya, aplikasi dapat menerima siaran yang menunjukkan level baterai perangkat yang terhubung dan dapat memberi tahu pengguna atau mengambil tindakan lain yang diperlukan. Membuat siaran penerima untuk ACTION_VENDOR_SPECIFIC_HEADSET_EVENT maksud menangani perintah AT khusus vendor untuk headset.

Health Device Profile

Android mendukung Bluetooth Health Device Profile (HDP). Kesehatan Bluetooth API berisi class BluetoothHealth, BluetoothHealthCallback, dan BluetoothHealthAppConfiguration, yang dijelaskan dalam Class utama dan

Saat menggunakan Bluetooth Health API, sebaiknya pahami HDP kunci ini konsep:

Sumber
Alat kesehatan, seperti timbangan, pengukur glukosa, atau termometer, yang mentransmisikan data medis ke perangkat smart, seperti ponsel atau tablet Android.
Sink
Perangkat smart yang menerima data medis. Dalam aplikasi HDP, sink diwakili oleh objek BluetoothHealthAppConfiguration.
Pendaftaran
Proses yang digunakan untuk mendaftarkan sink guna berkomunikasi dengan kesehatan tertentu perangkat seluler.
Koneksi
Proses yang digunakan untuk membuka saluran antara perangkat kesehatan (sumber) dan perangkat smart (wastafel).

Membuat aplikasi HDP

Berikut adalah langkah-langkah dasar yang diperlukan untuk membuat aplikasi HDP:

  1. Dapatkan referensi ke objek proxy BluetoothHealth. Seperti biasanya headset dan perangkat profil A2DP, Anda harus memanggil getProfileProxy() dengan BluetoothProfile.ServiceListener dan Jenis profil HEALTH untuk membuat koneksi dengan objek proxy profil.

  2. Membuat BluetoothHealthCallback dan mendaftarkan konfigurasi aplikasi (BluetoothHealthAppConfiguration) yang bertindak sebagai sink kesehatan.

  3. Membangun koneksi ke perangkat kesehatan.

  4. Saat berhasil terhubung ke perangkat kesehatan, baca dan tulis ke perangkat kesehatan perangkat tertentu menggunakan deskriptor file. Data yang diterima perlu ditafsirkan menggunakan manajer kesehatan, yang menerapkan IEEE 11073 spesifikasi.

  5. Setelah selesai, tutup saluran kesehatan dan batalkan pendaftaran aplikasi. Channel ini juga akan ditutup saat tidak ada aktivitas dalam waktu lama.