音で通信使用方法 2013- 5-15


このプログラムは,音を使って Android 機同士でデータ転送を行うものです.データを音に変換してスピーカーから出力し,他の Android 機でその音をマイクで拾って元のデータを復元します.
2台の Android 機で相互に通信して,転送誤りがあったら訂正を行いながらデータを転送する転送方法と,転送誤りの訂正は行えないが,複数の Android 機に一斉にデータを転送できる転送方法があります.


配布ファイル一覧

Otode.apk ..... 音で通信 Android パッケージ
readme.htm .... この作品についての説明
license.htm ... ご利用条件


動作環境

このプログラムは Samsung の Galaxy S の Android 2.2 および Ployer の MOMO9-3S の Android 4.0.4 上で動作を確認しています.
その他,音の入力(キャプチャ)に関する処理を除き,Android の開発ツールに含まれるエミュレータを使用して,以下のバージョンの OS で動作を確認しました.
Android 2.1
Android 2.2
Android 2.3.3
このプログラムでは,音の入力について 44.1 KHz のサンプリング レートでのオーディオ キャプチャを行いますが,エミュレータでは 44.1 KHz のサンプリング レートのキャプチャはできません.そのためエミュレータでは,後述のデータ転送機能のうち,音の入力を必要としない「応答なし」モードでのデータの送信のみが可能です.

他のバージョンの OS 上での動作は未確認です.
動作可能な最低 OS バージョンは Android 2.1 です.


データ転送の種類

通信方法について,以下の二つのモードがあります.

(a) 「応答あり」モード(対向モード)

データを複数のブロックに分けて送信し,各ブロックについて受信側から応答を返します.転送誤りが発生した場合は同じブロックを再度送ることで,誤りを訂正しながら転送を行います.

(b) 「応答なし」モード(同報モード)

データ全体を一度に送信します.転送誤りの訂正はできません.転送誤りが発生した場合は,最初から転送をやり直す必要があります.
同じデータを複数の Android 機で同時に受信することができます.また,「応答あり」モードより転送に要する時間が短くて済みます.


転送するデータの種類について,以下の二つがあります.

(a) テキスト転送

画面上のテキスト入力フィールドに入力したテキストを送信します.受信側では,画面上のテキスト表示フィールドに,受信したテキストが表示されます.

(a) ファイル転送

外部ストレージ(一般的には SD カード)内のファイルを送信します.受信側では,外部ストレージ内の指定したディレクトリに,受信したファイルが保存されます.


使用方法

● メイン画面

送信用画面(テキスト送信用画面)

受信用画面

アプリケーション起動時は送信用の画面が表示されます.[送信]/[受信]で送信用と受信用の画面を切り替えます.

[応答あり(対向)]/[応答なし(同報)]で通信方法を選択します.
通信方法は,送信側と受信側で合わせておく必要があります.

送信側では,[テキスト]/[ファイル]でデータの種類を選択します.

ファイル送信用画面

テキスト転送の場合は,テキスト入力フィールドに送信するテキストを入力します.
ファイル転送の場合は,[ファイル選択]で送信するファイルを選択します.

受信側では,データの種類を選択する必要はありません.受信したデータに合わせて自動的に画面が切り替わります.

テキスト受信時画面

ファイル受信時画面

ファイル転送の場合は,受信側では[ファイル保存先設定]で,ファイルを保存するディレクトリをあらかじめ指定しておく必要があります.
デフォルトの設定では,アプリケーション起動時のファイル保存ディレクトリの設定は,外部ストレージのルート ディレクトリになります.設定画面で[アプリケーション終了後もファイル保存先を記憶する]を選択した場合は,アプリケーション起動時のディレクトリ設定は,前回のアプリケーション終了時に設定されていた内容になります.


以上の項目を設定した後,[送信開始]/[受信開始]で転送を開始します.受信側を先に開始してから送信側を開始してください.または,送信側/受信側ほぼ同時くらいに開始しても構いません.受信側を開始するのがあまり遅れると,データを取りそこねてエラーになります.

転送を開始すると,[送信開始]/[受信開始]ボタンの表示が[送信中止]/[受信中止]に変わります.転送を中止する場合は,[送信中止]/[受信中止]をタッチします.


メイン画面では,以下のオプション メニューが使用できます.



[設定]を選択すると設定画面を表示します.


● ファイル選択画面

送信用画面で[ファイル選択]をタッチすると,このような画面が表示されます.



この画面で,送信するファイルを選択します.
アプリケーション起動後に初めてこの画面を開いた時は,外部ストレージのルート ディレクトリの内容が表示されます.二度目以降は,前回表示していたディレクトリの内容が表示されます.
内容を表示しているディレクトリのパスが,画面の一番上(画面タイトルの下)に表示されます.

該当ディレクトリ内のファイルとディレクトリが一覧表示され,各項目について以下の情報が表示されます.
ファイル項目

ディレクトリ項目

一覧でファイル項目をタッチすると,そのファイルが選択されます.
ディレクトリ項目をタッチすると,そのディレクトリの内容が表示されます.
ボタンをタッチすると,ひとつ上のディレクトリの内容が表示されます.

[ソート順]で一覧表示の並び順を以下から選択します.
ボタンを長押しすると,上位ディレクトリの一覧が表示されます.



外部ストレージのルート ディレクトリは のアイコンで表されます.
一覧の項目をタッチすると,そのディレクトリの内容が表示されます.


● ディレクトリ選択画面

受信用画面で[ファイル保存先設定]をタッチすると,このような画面が表示されます.



この画面で,受信したファイルを保存するディレクトリを選択します.
ディレクトリの内容を表示する操作はファイル選択画面と同じです.ファイル項目はタッチしても何も起きません.
ディレクトリを選択する方法は二つあります.

(a) [選択]ボタンで選択する方法

[選択]ボタンをタッチすると,現在内容を一覧表示しているディレクトリ,すなわち画面の一番上に表示されているディレクトリが 選択されます.

(b) 一覧でディレクトリ項目を長押しする方法

一覧のディレクトリ項目を長押しすると確認画面が表示され,[OK]を選択すると,そのディレクトリが選択されます.





● 設定画面



設定画面では,以下の項目を設定します.

・ [アプリケーション終了後もファイル保存先を記憶する]
チェックすると,アプリケーション起動時のファイル保存ディレクトリの設定が,前回のアプリケーション終了時に設定されていた内容になります.
チェックを外すと,アプリケーション起動時のファイル保存ディレクトリの設定は,外部ストレージのルート ディレクトリになります.

・ [ボリューム]
音量を調整します.


使用上の注意点
  1. 音をマイクで拾うため周囲の音の影響を受けやすいので,なるべく静かな環境で使用してください.
    また,周囲の音の影響が少なくなるよう,送信側と受信側の Android 機をなるべく近付け,マイクが相手側に向くようにしてください.

  2. 画面がディスプレイの表示サイズより大きい場合は,画面をドラッグしてスクロールさせることになりますが,その場合,メイン画面の 送信テキスト入力フィールド/受信テキスト表示フィールドの部分をドラッグしても,画面はスクロールしません. これは,テキスト フィールドのドラッグはテキスト フィールド内のテキストをスクロールさせる操作になるためです. 画面全体をスクロールさせるときは,テキスト フィールド外の部分をドラッグするようにしてください.
    スクロールが必要なディスプレイ サイズの場合,このようにテキスト フィールドの右側にマージンを大きめに取りますので,そこをタッチしてドラッグすることができます.