2016/07/14

[android]connectGatt()のautoConnectがわからん

わからんのだ。。。

BLE接続するときにconnectGatt()を使うのだが、その第2引数にautoConnectというものがある。

Whether to directly connect to the remote device (false) or to automatically connect as soon as the remote device becomes available (true).

falseだと「リモートデバイスとダイレクトに接続する」で、trueだと「リモートデバイスと接続可能になったら自動的に接続する」だ。

どういう意味なのだろう?


trueだと「いなくてもあきらめない」という解釈で良いのだろうか?

falseにしていると、BluetoothDeviceの持つ情報に一致したデバイスがなければ接続を止めるけど、trueにしていると、執念深く探し続けて、少しでも対象が近づこうものなら接続を仕掛ける、という動作だ。

SCANしてデバイスがいるのを確認してから接続するのだったら、falseにしておいた方が無難なのかな。
たぶん、切断したのに自動的に接続しに行くような動作はしないと思うのだ。
そういう場合は、close()していなければreconnect()だろう。

 

ただ調べていると、trueにしても効かないデバイスがある、と書いてあったりもしたので、あまり当てにできんのかもね。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。