Jawaban singkatnya adalah ya, dimungkinkan untuk menggunakan Bluetooth tanpa memasangkan. Namun, itu masih akan selalu menjadi tautan point-to-point. Ada juga masalah potensial dengan tidak menggunakan pemasangan (terutama kurangnya keamanan dan kurangnya dukungan yang baik untuk mode operasi ini). Apakah itu dapat dilakukan tergantung pada perangkat keras Bluetooth penerima Anda. Saya berasumsi Anda menggunakan Bluetooth 'standar' dan bukan Bluetooth berenergi rendah (yang sangat berbeda dan tidak terlalu didukung dengan baik di ponsel). Jika Anda menggunakan energi rendah maka pemancar Anda akan menjadi perangkat energi rendah dan penerima Anda akan menjadi sesuatu yang mendengarkan pesan. Saya belum pernah menggunakan ini, jadi saya tidak bisa memberi Anda informasi tentang ini jadi saya akan tetap dengan Bluetooth 'normal'.
Seperti yang saya lihat, ada dua masalah yang harus diatasi:
Mematikan pemasangan pin
Inisiasi koneksi otomatis
Saya akan membahas nomor 2 pertama karena saya mendapat kesan bahwa ini adalah apa yang benar-benar Anda minati (maaf jika saya salah membaca ini). Untuk melakukan ini dari ponsel atau perangkat 'master' lainnya, ia harus terus mencari perangkat Bluetooth jarak jauh. Ketika mengenali satu yang berlaku, itu akan secara otomatis terhubung dan mengirim beberapa data atau lainnya yang akan memulai tindakan apa pun yang diperlukan. Yang lain telah menyebutkan penggunaan nama ramah Bluetooth untuk proses ini dan itu tentu saja merupakan salah satu cara untuk melakukannya. Pengalaman saya tentang nama yang ramah Bluetooth (terutama tetapi tidak secara eksklusif dengan Microsoft Bluetooth stack) adalah bahwa mereka tidak sekuat metode pemindaian. Anda mungkin akan jauh lebih baik menggunakan Kelas Perangkat Bluetooth, yang disiarkan bersamaan dengan alamat perangkat unik. Kelas perangkat ini memiliki sejumlah besar entri yang ditentukan sebelumnya untuk hal-hal seperti ponsel, laptop, desktop, dll. Jika Anda menggunakan salah satu kelas perangkat non-standar (mis. 00:00:00), Anda akan langsung dapat untuk menyaring sebagian besar perangkat Bluetooth. Anda kemudian dapat terhubung ke perangkat yang tersisa dan melakukan semacam komunikasi permintaan-pengakuan untuk memulai tindakan Anda. Jika Anda membuat ini tidak jelas (atau periksa nama ramah sebagai pertimbangan kedua), itu harus secara implisit menyaring semua perangkat yang salah yang tersisa.
Mengenai nomor 1, pemasangan pin tidak terlalu logis jika Anda membuat koneksi sementara, tetapi masih mungkin cara terbaik untuk mencapai apa yang ingin Anda lakukan. Jika Anda ingin menghindari pemasangan pin, itu dapat dimatikan dan koneksi yang tidak dipasangkan dapat dilakukan. Cara Anda melakukannya tergantung pada implementasi penerima Bluetooth, tetapi berikut adalah beberapa contoh:
- Bluegiga WT12: gunakan perintah SET BT AUTH *
- National Semiconductor LMX9838: gunakan perintah GAP_SET_SECURITY_MODE dengan mode keamanan 1 (tidak ada pasangan)
dll.
Menghubungkan ke perangkat kemudian dapat dilakukan tanpa memasangkan. Jika perangkat yang memulai koneksi sama dengan penerima, ini sangat mudah. Jika Anda menggunakan PC Windows, Anda dapat melalui proses pembuatan koneksi baru yang melelahkan dan memilih "jangan gunakan pin", meskipun Windows mungkin masih akan meminta pin ketika Anda terhubung (0000 biasanya berfungsi, tetapi sangat serpihan). Jika Anda menggunakan python dengan pybluez, ini sangat sederhana:
import bluetooth
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((<insert MAC address>, <insert port number>))
Namun, jika Anda ingin terhubung dari ponsel, itu menjadi jauh lebih rumit. Android SDK tampaknya tidak benar-benar mendukung koneksi tidak berpasangan:
Android Bluetooth API saat ini memerlukan perangkat untuk dipasangkan sebelum koneksi RFCOMM dapat dibuat. (Pemasangan secara otomatis dilakukan ketika Anda memulai koneksi terenkripsi dengan Bluetooth API.)
(dari http://developer.android.com/guide/topics/connectivity/bluetooth.html ). Ada beberapa cara untuk mengatasi hal ini, tetapi sangat rumit dan tidak didukung dengan baik. Jika Anda menggunakan iPhone, maka konektivitas Bluetooth sama sekali berbeda dengan worm (lisensi dll), jadi saya akan meninggalkannya sekarang.
Setelah mengatakan semua itu, hampir setiap API yang pernah saya lihat memungkinkan pemasangan dantidak berpasangan untuk dilakukan (dengan pengecualian python / pybluez, tapi itu hanya pembungkus di sekitar tumpukan Microsoft pada Windows, jadi Anda selalu dapat memanggil fungsi tingkat rendah secara langsung). Jadi, ketika Anda melihat perangkat dengan kelas perangkat yang tepat, mengapa tidak hanya memasangkan secara otomatis (dengan nomor pin pemasangan yang telah ditentukan), buat koneksi, kirim data yang diperlukan, lepaskan kemudian putuskan hubungan. Tidak satu pun dari ini akan memerlukan intervensi pengguna dan selama Anda tidak melakukannya ribuan kali (yang berpotensi menyebabkan masalah dengan pemakaian EEPROM), itu seharusnya tidak menyebabkan Anda memiliki masalah. Ini juga akan menghemat banyak kesulitan untuk mencoba mendapatkan API yang berbeda agar bekerja dengan baik dengan apa yang dianggap sebagai metode non-standar menggunakan Bluetooth.