Bluetooth_MIT_AI
BluetoothクライアントかBluetoothサーバを選択し、事前に
Bluetoohペアリング処理をしたAndroid端末間でBluetoohコネクションを確立し、データを送受信します。
|
アイコン
スクリーンショット・メイン画面・起動時・BluetoothClientモード
スクリーンショット・メイン画面・起動時・BluetoothServerモード
スクリーンショット・ペア設定ダイアログ・BluetoothClientモード
スクリーンショット・メイン画面・接続・送受信時・BluetoothClientモード
スクリーンショット・メイン画面・設定時・BluetoothClientモード
スクリーンショット・メイン画面・設定時・BluetoothServerモード
スクリーンショット・Aboutダイアログ
|
◆アプリ名: Bluetooth_MIT_AI (十二星座シリーズ
/ 開発コード名: Capricon)
Bluetooh通信をしたい場合、MIT App Inventor
ではBluetoothClient(※1)または、BluetoothServer(※2)を使用します。
無論、Bluetoohクライアントとして機能させたい場合はBluetoothClientを、Bluetoohサーバとして機能させたい場合は
BluetoothServerを使用します。
今回は、BluetoothClient/BluetoothServerを利用し、Android端末間通信アプリを製造してみました。
具体的には、BluetoothクライアントかBluetoothサーバを選択し、事前にBluetoohペアリング処理をしたAndroid端末間で
Bluetoohコネクションを確立し、以下データを送受信します。
(1) テキスト情報
(2) 符号付き1バイトの数字のバイト毎リスト(SignedBytes = -128〜127)
(3) 符号付き1バイトの数字(Signed1ByteNumber = -128〜127)
(4) 符号付き2バイトの数字(Signed2ByteNumber = -32,768〜32,767)
(5) 符号付き4バイトの数字(Signed4ByteNumber = -2,147,483,648〜2,147,483,647)
(6) 符号なし1バイトの数字のバイト毎リスト(UnsignedBytes = 0〜255)
(7) 符号なし1バイトの数字(Unsigned1ByteNumber = 0〜255)
(8) 符号なし2バイトの数字(Unsigned2ByteNumber = 0〜65,535)
(9) 符号なし4バイトの数字(Unsigned4ByteNumber = 0〜4,294,967,295)
なお、Bluetoothのデータ受信にはイベント発生がありません。
従い、Clockを利用して定期的に受信データがないかチェックする等、工夫が必要です。
本アプリは内蔵メモリではなく、SDカードにインストールされます。また、本アプリは、MIT App Inventor
V1.34(※3)で製造し、AppToMarket V3.2(※4)でリビルドしたノンコーディングなものです。
※1 BluetoothClientとは、文字通りBluetoothクライアントとして機能させたい場合に使用するMIT App
Inventor Other Componentsの一つです。
詳細は、公式HP(http:
//appinventor.mit.edu/explore/content/other.html#BluetoothClient)をご参照下さ
い。
※2 BluetoothServerとは、文字通りBluetoothサーバとして機能させたい場合に使用するMIT App Inventor
Other Componentsの一つです。
詳細は、公式HP(http:
//appinventor.mit.edu/explore/content/other.html#BluetoothServer)をご参照下さ
い。
※4 MIT App Inventor V1.34
http://appinventor.mit.edu/
※5 AppToMarketV3.2
https://code.google.com/p/apptomarket/
【ご提供サービス】
★前提条件
(1)
Bluetoothクライアントとして動作させるデバイスと、Bluetoothサーバとして動作させる端末、2台のAndroid端末が必要です。ま
た、それら2台のAndroid端末に本アプリをインストールしておく必要があります。
(2) 通信したいAndroid端末をペアリングする必要があります。ペアリングの方法は各端末の説明書を参照下さい。
(ご参考) Xperia arcの設定方法は以下の通りです。
1) 1台目、2台目ともに、[設定]-[無線とネットワーク]-[Bluetooth設定]をタップする。
2)
1台目の端末について、[検出可能]をタップする。また、1台目が検出可能状態となったことを確認したら、2台目の端末について、[端末のスキャン]を
タップする。
3) 2台目の同画面上の「Bluetooth端末」に1台目の端末名が表示されたら、1台目の端末名をタップし、ペアリングを実施する。
(3) 本アプリを起動する前に、通信したい端末2台のBluetooth機能をONにして下さい。
(ご参考) Xperia arcのBluetooth機能をONにする方法は以下の通りです。
1) [設定]-[無線とネットワーク]をタップし、[Bluetooth]のON/OFFを確認する。
2) [Bluetooth]がOFFの場合は、[Bluetooth]をタップしてONにする。
★ご提供サービス
BluetoothクライアントかBluetoothサーバを選択し、事前にBluetoohペアリング処理をしたAndroid端末間で
Bluetoohコネクションを確立し、以下データを送受信します。
(1) テキスト情報
(2) 符号付き1バイトの数字のバイト毎リスト(SignedBytes = -128〜127)
(3) 符号付き1バイトの数字(Signed1ByteNumber = -128〜127)
(4) 符号付き2バイトの数字(Signed2ByteNumber = -32,768〜32,767)
(5) 符号付き4バイトの数字(Signed4ByteNumber = -2,147,483,648〜2,147,483,647)
(6) 符号なし1バイトの数字のバイト毎リスト(UnsignedBytes = 0〜255)
(7) 符号なし1バイトの数字(Unsigned1ByteNumber = 0〜255)
(8) 符号なし2バイトの数字(Unsigned2ByteNumber = 0〜65,535)
(9) 符号なし4バイトの数字(Unsigned4ByteNumber = 0〜4,294,967,295)
★使用方法
以下の通りです。
(1) Bluetooth通信させたいAndroid端末を2台用意し、それぞれ本アプリを起動して下さい。
※以降、1台目をBluetoothClientとして、2台目をBluetoothServerとして動作させることを前提として記載致します。
(2) 1台目に対して、[Select Client or Server]ボタンを押し、BluetoothClientを選択して下さい。
また、2台目に対して、[Select Client or Server]ボタンを押し、BluetoothServerを選択して下さい。
(3) 1台目に対して、[Select pair device]ボタンで通信対象のAndroid端末を選択して下さい
(2台目はBluetoothServerとして動作させる為、本設定は不要です。従い、[Select pair
device]ボタンは表示されません。)
(3) 2台目に対して、[Connect]ボタンを押し、1台目からのBluetooth接続要求待ち状態にして下さい。
(4) 1台目に対して、[Connect]ボタンを押し、2台目に対するBluetooth接続要求をして下さい。
(5) 1台目と2台目が無事Bluetooth接続すると、「Now
Connected!」という画像が画面に表示されます。接続が失敗した場合、その旨のメッセージが画面に表示されます。
(6) 1台目と2台目がBluetooth接続した状態で、[Input data]テキストボックスに任意のメッセージを入力し、[Send
data]ボタンを押すと対するAndroid端末へメッセージを送信できます。送受信したメッセージは、[Result]領域にそれぞれ表示されます。
★詳細設定
以下のパラメーターを設定変更することが可能です。
(1) 共通設定
1) 送信メソッド(SendMethod)
(a) SendText: テキスト情報を送信できます。
(b) SendBytes: 1バイトの数字(0〜255)のバイト毎リストを送信できます。
(c) Send1ByteNumber: 1バイトの数字(0〜255)を送信できます。
(d) Send2ByteNumber: 2バイトの数字(0〜65,535)を送信できます。
(e) Send4ByteNumber: 4バイトの数字(0〜4,294,967,295)を送信できます。
2) 受信メソッド(ReceiveMethod)
(a) ReceiveText: テキスト情報を受信できます。
(b) ReceiveSignedBytes: 符号付き1バイトの数字(-128〜127)のバイト毎リストを受信できます。
(c) ReceiveSigned1ByteNumber: 符号付き1バイトの数字(-128〜127)を受信できます。
(d) ReceiveSigned2ByteNumber: 符号付き2バイトの数字(-32,768〜32,767)を受信できます。
(e) ReceiveSigned4ByteNumber: 符号付き4バイトの数字(
-2,147,483,648〜2,147,483,647)を受信できます。
(f) ReceiveUnsignedBytes: 符号なし1バイトの数字(0〜255)のバイト毎リストを受信できます。
(g) ReceiveUnsigned1ByteNumber: 符号なし1バイトの数字(0〜255)を受信できます。
(h) ReceiveUnsigned2ByteNumber: 符号なし2バイトの数字(0〜65,535)を受信できます。
(i) ReceiveUnsigned4ByteNumber: 符号なし4バイトの数字(0〜4,294,967,295)を受信できます。
(2) BluetoothClient設定
1) CharacterEncoding:
UTF-8/Shift-JIS/EUC-JP。データ送受信で使用する文字コード。デフォルト設定はUTF-8です。
2) DelimiterByte:
0以上の整数。ReceiveText、ReceiveSignedBytes、またはReceiveUnsignedBytesにてデータ受信する際、
受信データ(numberOfBytesパラメータ)が負の数の場合の区切りバイト値。デフォルト値は0です。
3) HighByteFirst: true/false。2,
4バイトの数字をbig-endian形式(※5)で送受信するか否か。デフォルト値はfalseです。
4) Secure: true/false。ペアリングの際、SSP(Simple Secure Pairing
※6)を使用するか否か。デフォルト値はtrueです。
(3) BluetoothServer設定
1) CharacterEncoding: ((2) BluetoothClient設定 1)と同様)
2) DelimiterByte: ((2) BluetoothClient設定 2)と同様)
3) HighByteFirst: ((2) BluetoothClient設定 3)と同様)
4) Secure: ((2) BluetoothClient設定 4)と同様)
※5 big-endian形式
2バイト以上のデータ量を持つ数値データを記録したり転送するときには1バイトごとに分割しますが、これを最上位のバイトから順番に記録/送信する方式。
反対に、最下位のバイトから順番に記録/送信する方式を「リトルエンディアン」と言います。
Motorola社のマイクロプロセッサでは、メモリに数値データを格納する際にビッグエンディアンで記録しますが、Intel社のプロセッサはリトルエ
ンディアンで記録します。
※6 SSP(Simple Secure Pairing)
Bluetooth
v2.1以上でサポートされたペアリング方式。SSPを使用することでパスコードを入力せずセキュアにペアリングが可能です。なお、Android
2.0-2.2では、本設定は無視されます。
MIT App InventorのBluetoothClient、BluetoothServerが提供する機能を確認するお役にたてれば幸いです。
【十二星座シリーズについて】
本シリーズは、私がMIT App Inventorの APIを理解したいと考え、製造したアプリ群です。
従い、本シリーズは目的重視の為、実用的ではないかもしれません…が、どうかお許し下さい。
ただし、アプリのロジックとして、MIT App Inventor Blocks Editorの図を私のHPに公開させて頂こうと考えております。
ご参考になれば幸いです。
【ダウンロード後によくある質問】
いまのところございません。
【対応端末】
AndroidOSのバージョン2.0以上搭載の端末でご利用いただけます。
スマートフォン以外の機器(スマートTVなど)は、動作保証外です。
【改版履歴】
・Ver1.0.0 2013/06/21 新規作成
|
Blocks Editor
本アプリの主なロジックを以下に掲載致します(広告表示ロジック、Aboutボタン押下時
のロジック、全変数の定義は割愛させて頂いております)。ご参考になれば幸いです。
01) BluetoothServer.ConnectionAccepted.PNG
02) btn_ClearAndSetDefault.Click.PNG
03) btn_Connect.Click.PNG
04) btn_Disconnect.Click.PNG
05) btn_Send.Click.PNG
06) btn_SetNewParameter.Click.PNG
07) btn_Settings.Click.PNG
08) cbx_BluetoothClientHighByteFirst.Changed.PNG
09) cbx_BluetoothClientSecure.Changed.PNG
10) cbx_BluetoothServerHighByteFirst.Changed.PNG
11) cbx_BluetoothServerSecure.Changed.PNG
12) ClockBuletoothClient.Timer.PNG
13) ClockBuletoothServer.Timer.PNG
14) initializeParameter.PNG
15) lstPic_ClientAddressesAndNames.AfterPicking.PNG
16) lstPic_ClientAddressesAndNames.BeforePicking.PNG
17) lstPic_ClientCharacterEncoding.AfterPicking.PNG
18) lstPic_ClientCharacterEncoding.BeforePicking.PNG
19) lstPic_ClientOrServer.AfterPicking.PNG
20) lstPic_ClientOrServer.BeforePicking.PNG
21) lstPic_ReceiveMethod.AfterPicking.PNG
22) lstPic_ReceiveMethod.BeforePicking.PNG
23) lstPic_SendMethod.AfterPicking.PNG
24) lstPic_SendMethod.BeforePicking.PNG
25) lstPic_ServerCharacterEncoding.AfterPicking.PNG
26) lstPic_ServerCharacterEncoding.BeforePicking.PNG
27) sendData2List.PNG
ローテーションアド