ฉันกำลังพัฒนาแอพพลิเคชั่นที่จะใช้ Bluetooth Low Energy (ทดสอบกับ Nexus 4) หลังจากเริ่มต้นด้วย BLE API อย่างเป็นทางการใน Android 4.3 ฉันสังเกตเห็นว่าหลังจากฉันเชื่อมต่ออุปกรณ์เป็นครั้งแรกฉันแทบจะไม่สามารถเชื่อมต่อ / สื่อสารกับอุปกรณ์นั้นหรืออุปกรณ์อื่นใดได้สำเร็จ
ทำตามคำแนะนำที่นี่ฉันสามารถเชื่อมต่อกับอุปกรณ์สแกนบริการและคุณสมบัติสำเร็จและอ่าน / เขียน / รับการแจ้งเตือนได้โดยไม่มีปัญหาใด ๆ อย่างไรก็ตามหลังจากยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้งฉันมักจะไม่สามารถสแกนบริการ / คุณสมบัติหรือไม่สามารถอ่าน / เขียนได้ ฉันไม่พบสิ่งใดในบันทึกเพื่อระบุสาเหตุที่เกิดขึ้น
เมื่อสิ่งนี้เกิดขึ้นฉันต้องถอนการติดตั้งแอปพลิเคชั่นปิดการใช้งานบลูทู ธ และรีสตาร์ทโทรศัพท์ก่อนที่มันจะเริ่มทำงานอีกครั้ง
เมื่อใดก็ตามที่อุปกรณ์ถูกตัดการเชื่อมต่อฉันต้องแน่ใจว่าได้โทรปิด () บนวัตถุ BluetoothGatt และตั้งค่าเป็นโมฆะ ข้อมูลเชิงลึกใด ๆ
แก้ไข:
ทิ้งบันทึก: สำหรับบันทึกเหล่านี้ฉันรูทโทรศัพท์ของฉันและเพิ่มระดับการติดตามของรายการที่เกี่ยวข้องใน /etc/bluetooth/bt_stack.conf
การเชื่อมต่อสำเร็จ - ความพยายามครั้งแรกหลังจากรีบู๊ตโทรศัพท์และติดตั้งแอพ ฉันสามารถเชื่อมต่อค้นพบบริการ / คุณลักษณะทั้งหมดและอ่าน / เขียน
ล้มเหลวในการพยายาม 1 - นี่เป็นความพยายามครั้งถัดไปหลังจากยกเลิกการเชื่อมต่อจากการเชื่อมต่อที่สำเร็จด้านบน ดูเหมือนว่าฉันสามารถค้นพบลักษณะเฉพาะได้ แต่ความพยายามครั้งแรกในการอ่านจะคืนค่าเป็นศูนย์และยกเลิกการเชื่อมต่อหลังจากนั้นไม่นาน
ล้มเหลวในการพยายาม 2 - ตัวอย่างที่ฉันไม่สามารถค้นพบบริการ / คุณลักษณะ
แก้ไข 2:
อุปกรณ์ที่ฉันพยายามเชื่อมต่อขึ้นอยู่กับชิป CC2541 ของ TI ฉันได้รับTI SensorTag (ตาม CC2541) เพื่อเล่นกับและค้นพบว่า TI เปิดตัวแอพ Androidสำหรับ SensorTag เมื่อวาน อย่างไรก็ตามแอพนี้มีปัญหาเดียวกัน ฉันทดสอบสิ่งนี้บน Nexus 4s อีกสองตัวด้วยผลลัพธ์เดียวกัน: การเชื่อมต่อกับ SensorTag ประสบความสำเร็จในครั้งแรกหรือครั้งที่สอง แต่ (ตามบันทึก) ไม่สามารถค้นพบบริการหลังจากนั้นทำให้เกิดปัญหาทุกประเภท ฉันเริ่มสงสัยว่าเป็นปัญหาของชิปเฉพาะนี้หรือไม่