スマホとPCのBluetooth4.0(Bluetooth Low Energy)接続について

58 views
Skip to first unread message

tamu2

unread,
Jun 30, 2014, 9:45:11 PM6/30/14
to android-deve...@googlegroups.com
現在、スマホと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個)

以上になります。
長文ですみません。
よろしくお願い致します。

Reply all
Reply to author
Forward
0 new messages