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