Bluetooth_MIT_AI

 BluetoothクライアントかBluetoothサーバを選択し、事前に Bluetoohペアリング処理をしたAndroid端末間でBluetoohコネクションを確立し、データを送受信します。


アイコン

Bluetooth_MIT_AI

スクリーンショット・メイン画面・起動時・BluetoothClientモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・メイン画面・起動時・BluetoothServerモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・ペア設定ダイアログ・BluetoothClientモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・メイン画面・接続・送受信時・BluetoothClientモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・メイン画面・設定時・BluetoothClientモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・メイン画面・設定時・BluetoothServerモード

Bluetooth_MIT_AI Screenshot1

スクリーンショット・Aboutダイアログ

Bluetooth_MIT_AI Screenshot4

◆アプリ名: 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 新規作成

Android app on Google Play

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


ローテーションアド

その他

正当なCSSです!

inserted by FC2 system