> Bluetooth関係やRFCOMM関係のクラス該当メソッドを見つけることが出来ませんでした。
ズバリ、「android.bluetooth」パッケージとなります。
SDKにBluetoothChatというチャットサンプルがありますので、そちらでBluetoothの基礎が理解できると思います。
一般的なSPP機器との接続には、サンプル中のUUIDを変更する必要があります。
以下のブログをまとめている者です。
BluetoothChatでシリアル接続(SPP)を行う | dietposter's blog http://bit.ly/jQbEVQ
メソッドなどAPI経由でボーレートを変える場所はありません(みつかりませんでした)。
(ちなみに細かいことを言うとボーではなくてbpsですが、bpsなど通信速度を変える場所がありません)
結局、相手側を11520bpsか9600bpsに設定すれば、Android側はそれに合わせてうまく通信してくれる、ということが経験的にわかりました。(調べてみたこと(1)参照)
ですんで、ネイティブな部分(JNIになるんでしょうか)で
・自動的に通信速度を変更している部分をみつける
・自分で明示的に通信の設定を変更する
…などとして踏み込んでいくことになるんでしょうか。
あと、UUID値の指定で通信速度などの設定を変更することができるのでは?と思い調べてみましたが、
UUID値="00001101-0000-1000-8000-00805F9B34FB"は、SPPというプロファイルだよと伝えているに過ぎないようです。(調べてみたこと(2)参照)
SPPでAndroid側から通信速度を指定できないか?というのは、私自身課題としていた点です。
3ヶ月ほど前まで取り組んでいて、Bluetooth通信が結果つながったのでそのままにしていた疑問点です。
植山さんの投稿を見て、自分自身の疑問もあり、わかる範囲で調べていました。
以下に調べてみたことを2点述べておきます。
どなたか解決策もしくはBluetoothプロファイルの根本的な動作要点をご存知の方がいましたらお教えいただきたい所存ですm(_ _)m
##############以下、調べてみたこと(1)
ArudinoでSparkFun社のBluetoothMateというBluetoothモジュールをテストしていました。
・Bluetoothモジュールをコマンドモードで115200bpsか9600bpsに固定
・Arduino側のソースもシリアルの速度をBluetoothモジュールと同じにしておく
…で相手側を設定しておくと、UUIDが"00001101-0000-1000-8000-00805F9B34FB"であれば
Android側での通信速度の設定をしなくてもチャットが可能になります。
結局、相手側は9600bps,8ピット,パリティなし,ハードフローなしの状態で通信しています。
現在6ドルのBluetoothモジュールをテストしていますが、それも同じ結果になっています。
ーー以下抜粋
BluetoothChatプロジェクトのBluetoothChatService.javaの中にあるUUID
// Unique UUID for this application
private static final UUID MY_UUID =
UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");
これを以下のように書き換えます。
private static final UUID MY_UUID =
UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
ーー以上
##############以下、調べてみたこと(2)
UUID値="00001101-0000-1000-8000-00805F9B34FB"は何を表すのか?
参考URL:
1.“Bluetooth Assigned Numbers” document http://bit.ly/mdbWNr
2.SPP v1.0 の SDP レコード http://bit.ly/kAuIPV
0x1101がSPPを表す値でこれを16ビットUUID(UUID16)という。
先頭から32ビットはUUID32という予約済み領域で0x00001101でSPPを表すのみ。
残りはBASE_UUIDで、00000000-0000-1000-8000-00805F9B34FB を足して128ビットUUID(UUID128)という。
BASE_UUIDがなぜこんな値になるのかわからないのですが、SPP以外のプロファイルでも使われるベース部分のUUID値なら、ここに通信速度の設定を入れるのはなさそうに思える。
【疑問点】サンプルプログラムBluetoothChatのUUID値"fa87c0d0-afac-11de-8a39-0800200c9a66"はどこからやってきた値なのか?
ちなみに「00001101-0000-1000-8000-00805F9B34FB」をGoogleで検索すると以下のサイトが出てきます。
ServiceClassIDList http://bit.ly/lPvbOY
英語なんで読み飛ばしになりますが、0x1101でSPPデバイスの指定だよ、とかBluetooth/rs232はデフォルト115200bpsで9600pbsにセットして使うもんだよ、とか書かれています。
==============以上
以上、もう既に調べられたことかもしれませんが…。
ご検討の一助となれば幸いです。
2011年5月29日0:56 Yoshinari Ueyama <uey...@gmail.com>:
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> からこのグループにアクセスしてください。
>
以下のブログをまとめている者です。
BluetoothChatでシリアル接続(SPP)を行う | dietposter's blog http://bit.ly/jQbEVQ
メソッドなどAPI経由でボーレートを変える場所はありません(みつかりませんでした)。
(ちなみに細かいことを言うとボーではなくてbpsですが、bpsなど通信速度を変える場所がありません)
結局、相手側を11520bpsか9600bpsに設定すれば、Android側はそれに合わせてうまく通信してくれる、ということが経験的にわかりました。(調べてみたこと(1)参照)
ですんで、ネイティブな部分(JNIになるんでしょうか)で
・自動的に通信速度を変更している部分をみつける
・自分で明示的に通信の設定を変更する
…などとして踏み込んでいくことになるんでしょうか。
あと、UUID値の指定で通信速度などの設定を変更することができるのでは?と思い調べてみましたが、
UUID値="00001101-0000-1000-8000-00805F9B34FB"は、SPPというプロファイルだよと伝えているに過ぎないようです。(調べてみたこと(2)参照)
SPPでAndroid側から通信速度を指定できないか?というのは、私自身課題としていた点です。
3ヶ月ほど前まで取り組んでいて、Bluetooth通信が結果つながったのでそのままにしていた疑問点です。
植山さんの投稿を見て、自分自身の疑問もあり、わかる範囲で調べていました。
以下に調べてみたことを2点述べておきます。
どなたか解決策もしくはBluetoothプロファイルの根本的な動作要点をご存知の方がいましたらお教えいただきたい所存ですm(_ _)m
##############以下、調べてみたこと(1)
神戸支部の石井と申します。
お世話になっております。
さて、Bluetooth SPPで接続されるQRコードリーダーは19200bps固定ということ
ですが、ここで使用されているQRコードリーダーはBTのモジュールが内蔵
されているものになりますでしょうか。
もしSPPのモジュールが単体のBluetooth-シリアル変換器の形であれば、
BT経由以外の方法で(シリアル側からの設定で)
シリアル通信速度を設定できるということはないでしょうか。
私はいくつかBT SPPモジュールを個人的に使用していたのですが、
モジュールにはシリアルから設定するコマンドセット(ATコマンドの形式)があ
り、それで通信速度等も設定できるようになっていました。
ATコマンドで通信速度を設定しモジュール内に記憶させることで、次回電源投入
時から設定されたレート(ここでは19200bps)で通信できるのではないかと
思った次第です。
ご参考に、とあるBTモジュールでの通信速度設定のコマンドについて説明ページ
のURLを貼り付けさせていただきます。
http://szparts.com/?mode=f10
よろしくお願いいたします。
2011年5月30日11:11 Yoshinari Ueyama <uey...@gmail.com>:
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> からこのグループにアクセスしてください。
>
--
--
Yasuhiro ISHII
ishii.y...@gmail.com
さて、Bluetooth SPPで接続されるQRコードリーダーは19200bps固定ということ
ですが、ここで使用されているQRコードリーダーはBTのモジュールが内蔵
されているものになりますでしょうか。
もしSPPのモジュールが単体のBluetooth-シリアル変換器の形であれば、
BT経由以外の方法で(シリアル側からの設定で)
シリアル通信速度を設定できるということはないでしょうか。
私はいくつかBT SPPモジュールを個人的に使用していたのですが、
モジュールにはシリアルから設定するコマンドセット(ATコマンドの形式)があ
り、それで通信速度等も設定できるようになっていました。
ATコマンドで通信速度を設定しモジュール内に記憶させることで、次回電源投入
時から設定されたレート(ここでは19200bps)で通信できるのではないかと
思った次第です。