看板 AndroidDev 關於我們 聯絡資訊
最近發現自己的程式好像怪怪的 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://www.ptt.cc/bbs/AndroidDev/M.1496230577.A.41E.html
blueblueChen: 我先用work around方式,再 gatt.disconnect()後 06/01 10:39
blueblueChen: 收到 onConnectStateChange(),再下 gatt.close() 06/01 10:40
blueblueChen: 釋放資源 06/01 10:40
blueblueChen: https://goo.gl/JEhrnO 這是我在 nordic 官方po的 06/01 15:38
blueblueChen: 問題討論串 06/01 15:38
※ 編輯: blueblueChen (61.220.69.181), 06/01/2017 15:40:27
johnpaladin: 會不會是service被bind兩次? 06/01 20:03
blueblueChen: 埋了log,上層apk沒有再一次 bindService也沒有 06/02 11:43
blueblueChen: 做任何 gatt.connect()的動作,是由底層通知我又再 06/02 11:44
blueblueChen: 連線成功,和FW工程師討論,SDK有裝置接受斷線後 06/02 11:45
blueblueChen: 不要作重連的動作,不過預設是有做重連。這問題反映 06/02 11:46
blueblueChen: 給 Nordic 官方,他們也覺得很困惑.. 06/02 11:46
paulku: 你可以去GITHUB找BORDIC官方的APP來測 06/02 17:09
paulku: nRF UART這軟體試看看 可以的話就拿他們的SOURCE來改 06/02 17:10
paulku: 上面打錯 nordic 06/02 17:10
blueblueChen: 我自己改的APK就是從他們官方APK來改的,也用沒改的 06/03 10:45
blueblueChen: 來測,沒改的也是出現同樣的問題,我在討論串有PO 06/03 10:45
blueblueChen: 我在討論串說我注釋掉 mService.close()是因為他會 06/03 10:47
blueblueChen: 自己重連,而導致null point operation 06/03 10:48
blueblueChen: 官方說要我複製這樣的問題要朝這問題修正,但導致 06/03 10:48
blueblueChen: null pointer operation的 root cause就是它會自動 06/03 10:49
blueblueChen: 重連...下禮拜我再去做確認..身邊沒有裝置 06/03 10:51
OrmazdAtur: 推,同是nRF晶片開發者,期待您的分享。 06/08 22:41
codehard: 我也是用Nordic 但我沒這問題 叫fw在onConnected裡面埋l 06/12 22:30
codehard: og看看是不是真的有reconnection的問題 06/12 22:30