現在、スマホとPCにてBluetooth4.0(Bluetooth Low Energy)接続
およびGATTを利用したデータ送受信を行いたいのですが
上手くいかず困っております。
(スマホ側のサービス検索が失敗している)
解決策など何か情報をお持ちの方がいらっしゃいましたら、
ご教授頂きたいです。
開発環境などの詳細は以下になります。
【開発環境】
・スマホ(タブレット)
端末:Nexus7 2013
OS:Android 4.3
セントラルとして動作させている
下記のサイトを参考に実装しました
・PC
機種:Lenovo ThinkPad T430s
OS:Ubuntu14.04LTS
Bluetoothライブラリ:BlueZ 5.19
Bluetoothアダプタ:PLANEX BT-Micro4
ペリフェラルとして動作させている
【動作実行手順】
(1)PCにてアドバタイジングを実施
アドバタイジングコマンドは、下記サイトの通りに実施
(2)スマホにてデバイスの検索→接続→サービス検索を実施
【スマホの動作状況】
・mBluetoothAdapter#startLeScan実行後、
onLeScanのコールバックの呼び出しが行われ、
デバイス(PC)は発見できている。
・BluetoothDevice#connectGatt()による接続は行われており、
BluetoothGattCallbackの呼び出しが行われている。
・上記コールバックにてBluetoothProfile.STATE_CONNECTEDを検出し、
BluetoothGatt#discoverServices()を呼び出している。
・上記処理後、コールバックであるonServicesDiscoverd()の呼び出しが行われているが、
この時、ステータスの値が129となっており、サービスの検索に失敗している。
【やってみたこと】
・「スマホのBluetoothやWi-Fiを入り切りすると回復する」という記述があったが
実行しても改善せず。
・「Nexus7のOSのバージョンを4.4に移行すると治る」といった記述を見て実施してみたが
改善せず。
・PC側にGATTのサービスが登録されていなかった(sdptool browse localで確認)ので、
登録(sdptool add GATT)して実行してみたが、改善せず。
・ステータスの値のみがおかしいのではと考え、ステータスを無視して処理を進めてみたが
サービスが見つからなかった(0個)
以上になります。
長文ですみません。
よろしくお願い致します。