Menyiapkan Bluetooth

Sebelum aplikasi dapat berkomunikasi melalui Bluetooth atau Bluetooth Hemat Energi, Anda perlu memverifikasi bahwa Bluetooth didukung di perangkat, dan jika didukung, pastikan Bluetooth telah diaktifkan. Perhatikan bahwa pemeriksaan ini hanya diperlukan jika atribut android:required dalam entri file manifes <uses-feature.../> ditetapkan ke false.

Jika Bluetooth tidak didukung, Anda harus menonaktifkan semua fitur Bluetooth dengan baik. Jika Bluetooth didukung, tetapi dinonaktifkan, Anda dapat meminta pengguna mengaktifkan Bluetooth tanpa keluar dari aplikasi.

Langkah pertama adalah menambahkan izin Bluetooth ke file manifes untuk menggunakan API berikut.

Setelah izin diterapkan, penyiapan Bluetooth dilakukan dalam dua langkah menggunakan BluetoothAdapter:

  1. Dapatkan BluetoothAdapter.

    BluetoothAdapter diperlukan untuk setiap dan semua aktivitas Bluetooth. BluetoothAdapter mewakili adaptor Bluetooth perangkat itu sendiri (radio Bluetooth). Untuk mendapatkan BluetoothAdapter, Anda harus memiliki Context terlebih dahulu. Gunakan konteks ini untuk mendapatkan instance layanan sistem BluetoothManager. Memanggil BluetoothManager#getAdapter akan memberi Anda objek BluetoothAdapter. Jika getAdapter() menampilkan null, berarti perangkat tidak mendukung Bluetooth.

    Contoh:

    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. Aktifkan Bluetooth.

    Berikutnya, Anda harus memastikan bahwa Bluetooth diaktifkan. Panggil isEnabled() untuk memeriksa apakah Bluetooth saat ini diaktifkan. Jika metode ini menampilkan false, maka Bluetooth akan dinonaktifkan. Untuk meminta agar Bluetooth diaktifkan, panggil startActivityForResult(), dengan meneruskan tindakan intent ACTION_REQUEST_ENABLE. Panggilan ini akan mengeluarkan permintaan untuk mengaktifkan Bluetooth melalui setelan sistem (tanpa menghentikan aplikasi).

    Contoh:

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

Akan muncul dialog yang meminta izin pengguna untuk mengaktifkan Bluetooth, seperti yang ditunjukkan pada gambar 1. Jika pengguna memberikan izin, sistem akan mulai mengaktifkan Bluetooth, dan fokus akan kembali ke aplikasi Anda setelah proses selesai (atau gagal).


Gambar 1. Dialog Bluetooth yang diaktifkan.

Konstanta REQUEST_ENABLE_BT yang diteruskan ke startActivityForResult() adalah bilangan bulat yang ditentukan secara lokal yang harus lebih besar dari atau sama dengan 0. Sistem meneruskan konstanta ini kepada Anda dalam implementasi onActivityResult() sebagai parameter requestCode.

Jika berhasil mengaktifkan Bluetooth, aktivitas Anda akan menerima kode hasil RESULT_OK dalam callback onActivityResult(). Jika Bluetooth tidak diaktifkan karena error (atau pengguna merespons "Tolak"), kode hasilnya adalah RESULT_CANCELED.

Secara opsional, aplikasi Anda juga dapat memproses intent siaran ACTION_STATE_CHANGED yang disiarkan sistem setiap kali status Bluetooth berubah. Siaran ini berisi kolom tambahan EXTRA_STATE dan EXTRA_PREVIOUS_STATE, yang masing-masing berisi status Bluetooth baru dan lama. Nilai yang memungkinkan untuk kolom tambahan ini adalah STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF, dan STATE_OFF. Memproses siaran ini dapat berguna jika aplikasi Anda perlu mendeteksi perubahan runtime yang dilakukan pada status Bluetooth.

Tips: Mengaktifkan visibilitas akan otomatis mengaktifkan Bluetooth. Jika Anda berencana untuk secara konsisten mengaktifkan visibilitas perangkat sebelum melakukan aktivitas Bluetooth, Anda dapat melewati langkah 2 pada langkah sebelumnya.

Setelah Bluetooth diaktifkan di perangkat, Anda dapat menggunakan Bluetooth klasik dan Bluetooth Hemat Energi.

Untuk Bluetooth klasik, Anda dapat menemukan perangkat Bluetooth dan menghubungkan ke perangkat Bluetooth.

Untuk Bluetooth Hemat Energi, Anda dapat menemukan perangkat BLE, terhubung ke server GATT, dan mentransfer data BLE.