Membuat App Bluetooth di Android (1): Pendahuluan dan Aktifkan BT

logo bluetooth

 

Bluetooth (BT) adalah  standard teknologi wireless untuk komunikasi jarak pendek (10m – 100m) dengan energi rendah untuk data berukuran relatif kecil. BT menggunakan frekuensi 2.4 sampai dengan  2.485Ghz (sama dengan WiFi, tapi berbeda teknologi). Kecepatan Bluetooth mencapai 25Mbps (versi 4.0) Bluetooth diciptakan oleh perusahaan Erricson tahun 1995 dan berkembang cepat sejalan dengan tumbuhnya mobile device dan IoT (Internet of Thing).

Darimana asal kata dan logo Bluetooth? Nama Bluetooth diambil dari Raja Denmark: King Harald Bluetooth yang menyatukan berbagai fraksi di Denmark, Norwegia dan Swedia. Logo Bluetooth merupakan gabungan dari simbol H dan B yang merupakan inisial raja tersebut.

sejarah logo bluetooth

Bluetooh Low Energy (BLE) atau Bluetooth Smart muncul tahun 2010 sejalan dengan versi 4.0. BLE menggunakan daya rendah dan memiliki kecepatan transfer lebih tinggi dibandingkan BT versi lama (klasik). Karena hemat daya, BLE cocok untuk smartphone dan alat yang menggunakan batere koin. Sebagai contoh, batere koin CR2032 bisa digunakan untuk menghidupi alat bluteooth selama 5-10 tahun!. Sayangnya protokol BLE tidak kompatibel dengan BT klasik dan belum semua device support BLE. Tutorial ini masih membahas BT klasik.

Saat ini ada jutaan device yang memiliki BT ini. Mulai dari laptop, mouse, keyboard, smarphone, headphone, headset, fitness tracker, speaker dan lain sebagainya. Jumlah yang besar ini membuat harga hardware BT semakin murah.

Saingan utama BT adalah Wi-Fi Direct. Wi-Fi Direct dapat menghubungkan dua device secara peer to peer tanpa memerlukan access point. Wi-Fi direct memiliki kecepatan lebih tinggi (250Mbps) dan jangkauan lebih jauh (300m). Tapi Wi-Fi directy lebih boros daya dan belum banyak device yang mendukungnya. Android mendukung baik BT, BLE maupun WiFi direct.

Android menyediakan Bluetooth API yang dapat digunakan untuk:

  • Cek apakah device mensupport BT
  • Menampilkan dialog agar user menyalakan BT
  • Scan device yang berada dekat lalu pairing.
  • Membuka channel RFCOMM (Radio Frequency Communications) dan bertukar data.

Ada dua jenis bluetooth yang disupport Android, pertama Classic Bluetooth dan kedua adalah Bluetooth Low Energy, BLE (mulai Android 4.3). Kita akan mulai dari yang klasik terlebih dulu, karena BLE masih belum disupport oleh semua device Android yang ada di pasaran.

Berikutnya kita akan membuat app yang mendeteksi apakah device sudah support BT dan menampilkan dialog untuk menyalakan jika BT dalam kondisi off.

Buat project baru.

Buatlah project baru. Untuk menggunakan Bluetooth diperlukan permission android.permission.BLUETOOTH sedangkan untuk dapat mencari device harus digunakan android.permission.BLUETOOTH_ADMIN. Update manifest sebagai berikut:

<manifest>
...
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
</manifest>

Pengecekan Device apakah telah mendukung Bluetooth

Selanjutnya perlu dicek apakah device sudah men-support bluetooth. Untuk melakukan ini gunakan class BluetoothAdapter. Semua aktivitas yang terkait BT memerlukan kelas ini. Gunakan method getDefaultAdapter, dan jika mengembalikan nilai null, maka device tidak mensupport Bluetooth. Coba code dibawah dibagian onCreate.

BluetoothAdapter mBluetoothAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
   String pesan;
   if (mBluetoothAdapter == null) {
       pesan = "Tidak ada bluetooth!";
       finish(); //keluar
   } else {
       pesan ="Ada bluetooth!";
   }
   Toast toast = Toast.makeText(getApplicationContext(), pesan, Toast.LENGTH_LONG);
   toast.show();
}

Menyalakan Bluetooth

Langkah berikutnya adalah menyalakan Bluetooth jika dalam kondisi mati. Akan muncul dialog, dan setelah user memilih maka method onActiviyResult akan dipanggil. Berikut codenya:

//konstanta untuk req enable bluetooth, angkanya bebas
public static final int REQUEST_ENABLE_BT=999;

@Override
protected void onCreate(Bundle savedInstanceState) {
   … sama dengan sebelumnya

   if (!mBluetoothAdapter.isEnabled()) {
       //bluetooth dalam kondisi off
       //menampilkan dialog untuk menyalakan bluetooth 
       //setelah user memilih; method onActivityResult akan di-trigger
       Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
       startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
   }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//setelah user menjawab dialog menyalakan BT 
//maka method ini akan dipanggil
   if (requestCode == REQUEST_ENABLE_BT) {
       String pesan;
       if (resultCode == RESULT_OK) {
           //user menyalakan bluetooth
           pesan = "Bluetooth dinyalakan";
       } else {
           // user deny
           pesan = "Bluetooth tidak mau dinyalakan user!";
       }
       Toast toast = Toast.makeText(getApplicationContext(), pesan, Toast.LENGTH_LONG);
       toast.show();
   }
}

Bersambung ke bagian 2: menampilkan paired device dan mencari device (device discovery)

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.