作者blueblueChen (蓝蓝欠)
看板AndroidDev
标题[问题] Android BLE 连线问题
时间Wed May 31 19:36:14 2017
最近发现自己的程式好像怪怪的
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 呼叫,这比较可能
是上层问题还是韧体那边? 有人有遇过吗?? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.220.69.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1496230577.A.41E.html
1F:→ blueblueChen: 我先用work around方式,再 gatt.disconnect()後 06/01 10:39
2F:→ blueblueChen: 收到 onConnectStateChange(),再下 gatt.close() 06/01 10:40
3F:→ blueblueChen: 释放资源 06/01 10:40
5F:→ blueblueChen: 问题讨论串 06/01 15:38
※ 编辑: blueblueChen (61.220.69.181), 06/01/2017 15:40:27
6F:推 johnpaladin: 会不会是service被bind两次? 06/01 20:03
7F:→ blueblueChen: 埋了log,上层apk没有再一次 bindService也没有 06/02 11:43
8F:→ blueblueChen: 做任何 gatt.connect()的动作,是由底层通知我又再 06/02 11:44
9F:→ blueblueChen: 连线成功,和FW工程师讨论,SDK有装置接受断线後 06/02 11:45
10F:→ blueblueChen: 不要作重连的动作,不过预设是有做重连。这问题反映 06/02 11:46
11F:→ blueblueChen: 给 Nordic 官方,他们也觉得很困惑.. 06/02 11:46
12F:推 paulku: 你可以去GITHUB找BORDIC官方的APP来测 06/02 17:09
13F:→ paulku: nRF UART这软体试看看 可以的话就拿他们的SOURCE来改 06/02 17:10
14F:→ paulku: 上面打错 nordic 06/02 17:10
15F:→ blueblueChen: 我自己改的APK就是从他们官方APK来改的,也用没改的 06/03 10:45
16F:→ blueblueChen: 来测,没改的也是出现同样的问题,我在讨论串有PO 06/03 10:45
17F:→ blueblueChen: 我在讨论串说我注释掉 mService.close()是因为他会 06/03 10:47
18F:→ blueblueChen: 自己重连,而导致null point operation 06/03 10:48
19F:→ blueblueChen: 官方说要我复制这样的问题要朝这问题修正,但导致 06/03 10:48
20F:→ blueblueChen: null pointer operation的 root cause就是它会自动 06/03 10:49
21F:→ blueblueChen: 重连...下礼拜我再去做确认..身边没有装置 06/03 10:51
22F:推 OrmazdAtur: 推,同是nRF晶片开发者,期待您的分享。 06/08 22:41
23F:→ codehard: 我也是用Nordic 但我没这问题 叫fw在onConnected里面埋l 06/12 22:30
24F:→ codehard: og看看是不是真的有reconnection的问题 06/12 22:30