tag:blogger.com,1999:blog-1396587683869052600.post8464554564777351564..comments2022-12-04T15:29:30.041+09:00Comments on hiro99ma blog: [android]BLE接続の不安定さに迫る!の補足hiro99mahttp://www.blogger.com/profile/04874324534565548436noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-1396587683869052600.post-55848659029894580772016-09-14T10:48:54.411+09:002016-09-14T10:48:54.411+09:00BluetoothGatt#connect()は呼ばなくても接続できるんですね。
Bluetooth...BluetoothGatt#connect()は呼ばなくても接続できるんですね。<br />BluetoothDevice#connectGatt()を呼べばよいみたいです。<br /><br />BluetoothGatt#connect()を呼ぶと、自動接続がオンにされてしまうようです。Himadeushttps://www.blogger.com/profile/06186046787152835722noreply@blogger.comtag:blogger.com,1999:blog-1396587683869052600.post-39150827013354725082016-09-13T17:35:46.238+09:002016-09-13T17:35:46.238+09:00私、見るとこが間違ってました、済みません。。。
mTransportは関係なかったですね。
これは...私、見るとこが間違ってました、済みません。。。<br />mTransportは関係なかったですね。<br /><br />これは、falseのところを書き換えるか、connect()を使わないかしかなさそうですね。<br />意識してなかったのですが、私はconnect()を使わないことで回避できていた模様です。hiro99mahttps://www.blogger.com/profile/04874324534565548436noreply@blogger.comtag:blogger.com,1999:blog-1396587683869052600.post-66650771104903228412016-09-13T17:24:48.657+09:002016-09-13T17:24:48.657+09:00connectGatt() の transportがない方は、API18から使えますね。
https...connectGatt() の transportがない方は、API18から使えますね。<br />https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,%20boolean,%20android.bluetooth.BluetoothGattCallback)<br /><br />ここのautoConnectは、切断時に自動で再接続にいくかどうかだと思います。<br /><br />BluetoothGatt#connect()をmAutoConnectを参照するようにして、framework.jarを入れ替えると期待どおりの動作をしました。autoConnect=falseで接続したのち、ペリフェラルから切断Himadeushttps://www.blogger.com/profile/06186046787152835722noreply@blogger.comtag:blogger.com,1999:blog-1396587683869052600.post-39951275918464499632016-09-13T16:30:23.445+09:002016-09-13T16:30:23.445+09:00おお、確かにmAutoConnectがあるのに、胡散臭いですね。。。
mTransportはBlu...おお、確かにmAutoConnectがあるのに、胡散臭いですね。。。<br /><br />mTransportはBluetoothDevice#connectGatt()のtransportみたいだから、TRANSPORT_AUTOが0。<br />https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,%20boolean,%20android.bluetooth.BluetoothGattCallback,%20int)<br /><br />でも、BR/EDRかLEの見分けをする「AUTO」だから、やっぱり意味なさそうですね。<br />TRANSPORT_LEを指定すると再接続しなくなるかも。。。<br /hiro99mahttps://www.blogger.com/profile/04874324534565548436noreply@blogger.comtag:blogger.com,1999:blog-1396587683869052600.post-30298691715386316682016-09-13T15:48:40.588+09:002016-09-13T15:48:40.588+09:00私が見ているaospのリンクです。
http://tools.oesf.biz/android-6....私が見ているaospのリンクです。<br />http://tools.oesf.biz/android-6.0.0_r1.0/xref/frameworks/base/core/java/android/bluetooth/BluetoothGatt.java#771Himadeushttps://www.blogger.com/profile/06186046787152835722noreply@blogger.comtag:blogger.com,1999:blog-1396587683869052600.post-33904985554998182842016-09-13T15:32:20.334+09:002016-09-13T15:32:20.334+09:00BluetoothGatt#connect()のコードですが、mService.clientConn...BluetoothGatt#connect()のコードですが、mService.clientConnectを呼ぶ時に、isDirect=falseで決め打ちされています。これがバグだを思っているのですが、どうでしょうか。コメントを読むに、!mAutoConnectとしようとしたけど間違えている気配がします。この影響で、全Bluetooth接続がAutoConnectとなり、途中で電波が途切れた場合は自動で再接続してしまします。意図的に切断する場合がうまく動作しません。Himadeushttps://www.blogger.com/profile/06186046787152835722noreply@blogger.com