Saat ini saya sedang mengembangkan aplikasi yang akan menggunakan Bluetooth Low Energy (pengujian pada Nexus 4). Setelah memulai dengan API BLE resmi di Android 4.3, saya perhatikan bahwa setelah saya menghubungkan perangkat untuk pertama kalinya, saya jarang dapat berhasil terhubung ke / berkomunikasi dengan perangkat itu atau perangkat lain lagi.
Mengikuti panduan di sini , saya dapat berhasil terhubung ke perangkat, memindai layanan dan karakteristik, dan membaca / menulis / menerima pemberitahuan tanpa masalah. Namun, setelah memutuskan dan menghubungkan kembali, saya sering tidak dapat memindai layanan / karakteristik atau tidak dapat menyelesaikan membaca / menulis. Saya tidak dapat menemukan apa pun di log untuk menunjukkan mengapa ini terjadi.
Setelah ini terjadi, saya harus menghapus aplikasi, menonaktifkan Bluetooth, dan me-restart telepon sebelum mulai berfungsi lagi.
Setiap kali perangkat terputus saya pastikan untuk memanggil tutup () pada objek BluetoothGatt dan mengaturnya ke nol. Ada wawasan?
EDIT:
Log dumps: Untuk log-log ini saya me-root-kan ponsel saya dan menaikkan level jejak dari item-item terkait di /etc/bluetooth/bt_stack.conf
Koneksi yang sukses - Upaya pertama setelah me-reboot ponsel dan menginstal aplikasi. Saya dapat terhubung, menemukan semua layanan / karakteristik, dan membaca / menulis.
Upaya Gagal 1 - Ini adalah upaya berikutnya setelah memutuskan sambungan dari koneksi yang berhasil di atas. Tampaknya saya dapat menemukan karakteristik, tetapi upaya pertama untuk membaca mengembalikan nilai nol dan segera terputus setelahnya.
Upaya Gagal 2 - Contoh di mana saya bahkan tidak dapat menemukan layanan / karakteristik.
EDIT 2:
Perangkat yang saya coba sambungkan didasarkan pada chip CC2541 TI. Saya memperoleh TI SensorTag (juga didasarkan pada CC2541) untuk bermain-main dan menemukan bahwa TI merilis aplikasi android untuk SensorTag kemarin. Namun, aplikasi ini memiliki masalah yang sama. Saya menguji ini pada dua Nexus 4 lainnya dengan hasil yang sama: Koneksi ke SensorTag berhasil pertama kali atau kedua, tetapi (menurut log) gagal menemukan layanan setelahnya, menyebabkan semua jenis crash. Saya mulai bertanya-tanya apakah ini masalah dengan chip khusus ini?