2013-11-15 11 views
12

AndroidデバイスをBluetooth LE(4.0スマート)デバイスに自動的に接続する方法を探しています。私はそれがBluetoothヘッドフォンのように動作することを期待しています - オンにすると、ペアの電話に自動的に接続します(範囲内にある場合)。Android:Bluetooth LEデバイスが範囲内に入って広告を開始すると自動的にBluetooth LEデバイスに接続できますか?

広告を定期的に(50-100msごとに)チェックするバックグラウンドでサービスを実行することを考えました。しかし、主な懸念事項の1つは、Androidデバイスのバッテリ寿命です。

誰かが、Android 4.3以上でこのような機能を実装する最良の方法を教えてください。

ありがとうございます!

+0

デバイスがスリープモードになると、BLE接続が維持されるかどうかです。そして私はここにそれを尋ねましたhttp://stackoverflow.com/questions/29118771/what-happens-to-connection-with-ble-device-when-android-goes-in-sleep-mode/29119416#29119416 –

答えて

1

ブロードキャスト受信機を登録して、Bluetoothデバイスが検出されたときにブロードキャストを受信できます。詳細とサンプルコードについては、APIガイドトピックBluetoothを参照してください。

トピックBluetooth Low Energyも参照してください。

最後に、this threadをご覧ください。これは基本的に同じ質問です。

+0

あなたはチェックできますか? [この質問](http://stackoverflow.com/questions/31761416/connect-to-bluetooth-programmatically)してください? : –

0

実際には、標準のBluetoothでのみ動作します。 Bluetoothスマートの場合ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTEDブロードキャストは機能しません。

BLEについては、デバイスが見つかったらmBluetoothAdapter.startLeScan(mLeScanCallback);のAPIとコールバックを使用する必要があります。

1

connectGatt()のautoConnectパラメータをtrueに設定します。 (第2パラメータ)

+1

これは私のために働いていません – Onheiron

+0

こんにちは、接続されているgattCallbackを持っているバックグラウンドサービスを持っていて、サービスが起動すると、あなたが持っているmacアドレスで作成したデバイスを削除してconnectGattを呼び出します。 、関連するコールバック? – user3698465

関連する問題