[问题] Android BLE 连线问题

楼主: blueblueChen (蓝蓝欠)   2017-05-31 19:36:14
最近发现自己的程式好像怪怪的
apk中有一个activity和service, service 中就写关于和装置连线的 code,例如用安卓
开发网站提供的范例code, gatt = device.connectGatt(xx,xx,mGattcallback);
当获得 gatt后,activity 就可以 bind 到此 service,透过 gatt 来做连线或断线。
service 中,有实作此装置支援的 custom service 和 characteristic(notify) ,
activity 获得装置的 command 都是透过此 characteristic改变,然后广播到
activity,现在,我从 activity disconnect装置,偶尔会出现断线后,又
自动连线上,断线后不应该自动连线阿阿阿,因为这样
mGattCallback的onConnectStateChange()竟然被呼叫两次(一次断线一次又自动连线),
我确定不是我去 call gatt.connect(),而是由底层 callback 呼叫,这比较可能
是上层问题还是韧体那边? 有人有遇过吗?? 谢谢
楼主: blueblueChen (蓝蓝欠)   2017-06-01 10:39:00
我先用work around方式,再 gatt.disconnect()后收到 onConnectStateChange(),再下 gatt.close()释放资源https://goo.gl/JEhrnO 这是我在 nordic 官方po的问题讨论串
作者: johnpaladin (小弟)   2017-06-01 20:03:00
会不会是service被bind两次?
楼主: blueblueChen (蓝蓝欠)   2017-06-02 11:43:00
埋了log,上层apk没有再一次 bindService也没有做任何 gatt.connect()的动作,是由底层通知我又再连线成功,和FW工程师讨论,SDK有装置接受断线后不要作重连的动作,不过默认是有做重连。这问题反映给 Nordic 官方,他们也觉得很困惑..
作者: paulku (苍木浩介.改)   2017-06-02 17:09:00
你可以去GITHUB找BORDIC官方的APP来测nRF UART这软件试看看 可以的话就拿他们的SOURCE来改上面打错 nordic
楼主: blueblueChen (蓝蓝欠)   2017-06-03 10:45:00
我自己改的APK就是从他们官方APK来改的,也用没改的来测,没改的也是出现同样的问题,我在讨论串有PO我在讨论串说我注释掉 mService.close()是因为他会自己重连,而导致null point operation官方说要我复制这样的问题要朝这问题修正,但导致null pointer operation的 root cause就是它会自动重连...下礼拜我再去做确认..身边没有装置
作者: OrmazdAtur (明文笙)   2017-06-08 22:41:00
推,同是nRF芯片开发者,期待您的分享。
作者: codehard   2017-06-12 22:30:00
我也是用Nordic 但我没这问题 叫fw在onConnected里面埋log看看是不是真的有reconnection的问题

Links booklink

Contact Us: admin [ a t ] ucptt.com