Cara Mendapatkan Daftar Perangkat Bluetooth Tersambung pada Kotlin

Aplikasi android adalah salah satu kebutuhan di dunia bisnis. Contohnya adalah banyaknya aplikasi android yang didesain untuk membantu mencatat pejualan berupa Point of Sales (POS) yang bisa didownload dengan gratis dari playstore. Selain dibagikan dalam skema gratisan, ada juga aplikasi yang dikemas dalam bentuk Software as Service (SaaS) dengan skema pembayaran langganan atau subscription.

Nah! Pada kali ini, aku tidak mau mengulas aplikasi-aplikasi POS yang banyak digunakan di Indonesia melainkan bertindak sebagai programmer yang ingin membagikan pengetahuan dalam rangka mengembangkan aplikasi yang membutuhkan cetak teks atau gambar menggunakan printer bluetooth.

Persiapan

Sebelum kita masuk ke pembahasan inti, ada baiknya aku menuliskan dulu bagaimana secara umum alur penggunaan printer bluetooth dari aplikasi yang kita buat.

printer bluetooth connection flow

Nah! Dari gambar di atas, kita dapat menyimpulkan paling tidak ada status dalam kaintannya akan menggunakan printer bluetooth pada aplikasi kita yaitu:

  • Memeriksa apakah bluetooth sudah diaktifkan atau belum. Ini adalah modal utama. Kalau Bluetooth belum diaktifkan bisa request enable bluetooth melalui aplikasi.
  • Memeriksa apakah printer tersebut sudah tersambung (paired) dengan HP android. Kalau belum perlu disambungkan dulu bisa dengan cara mengaktifkan bluetooth lalu sambungkan dengan aplikasi yang terdeteksi di situ.
  • Bluetooth yang telah tersambung (paired) tidak lantas langsung bisa digunakan untuk ngeprint sebelum koneksi socket ke printer bluetooth dijalankan.

Nah! pada artikel kali ini, kita akan membahas mengenai status kedua atau mendapatkan daftar perangkat yang sudah terambung ke HP Android.

Mendapatkan Daftar Perangkat Bluetooth yang Tersambung

Pertama, kita deklarasikan variabel-variabel yang akan digunakan antara lain:

private var devices = ArrayList<BluetoothDevice>()
private lateinit var adapter: BluetoothAdapter

Setelah itu, kita inisiasi adapter di onCreate() agar bisa digunakan untuk ngecek status bluetooth aktif atau tidak sekaligus mendapatkan daftar device yang tersambung. Caranya menggunakan kode di bawah ini:

val bluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
adapter = bluetoothManager.adapter

Setelah adapter berhasil diinisiasi, selanjutnya kita inisiasi variabel device agar memiliki nilai berupa daftar device yang tersambung dengan cara sebagai berikut:

devices = ArrayList(adapter.bondedDevices)

Setelah itu, kita coba tampilkan device yang tersambung ke Logcat dengan cara seperti ini:

for (device: BluetoothDevice in devices) {
       val deviceName = device.name
       val deviceAddress = device.address
       Log.d("DeviceList", "Device Name: $deviceName, Device Address: $deviceAddress")
}

Nah! Dari daftar device yang tersedia itu paling tidak kita bisa mendapat 2 data yang dibutuhkan untuk langkah-langkah berikutnya yaitu:

  • deviceName untuk ditampilkan ke pengguna agar mudah dalam memilih device yang sesuai
  • deviceAddress ini yang dibutuhkan untuk menyambungkan ke printer melalui socket. Setelah socket tersambung baru bisa mengirimkan perintah untuk ngeprint text, gambar, atau lainnya. Ini akan dibahas pada artikel lainnya.

Menampilkan Daftar Device pada Activity

Misalnya kita ingin menampilkan daftar device tersebut menggunakan Listview dengan id printerList maka bisa dilakukan dengan cara berikut:

 <ListView
        android:id="@+id/printerList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

Selanjutnya kita bisa memasang data device tersebut melalui ArrayAdapter sederhana seperti di bawah ini:

dBinding.printerList.adapter = ArrayAdapter(
           this,
           android.R.layout.simple_list_item_1,
           devices.map { it.name }
)

Demikianlah cara mendapatkan daftar device bluetooth yang tersambung pada perangkat android.

Photo of author

Ahmad Budairi

Ahmad Budairi, S.Pd. | Seorang Web Developer sekaligus kader Gerakan Pemuda Ansor yang sangat suka menulis artikel. Saya di sini akan lebih banyak menulis seputar Laravel, vue, vuetify, inertiajs, dan hal lain yang berhubungan dengan web development.Kontak: budairi.contact[et]gmail[dot]com

Leave a Comment