English

チュートリアル - ANDROID-STEP1

目次

1. 概要
1.1 ネットワーク構成
1.2 前提条件
2. テキスト送受信アプリの導入
3. テキスト送受信アプリの操作
3.1 画面遷移
3.2 初期画面
3.3 設定画面
3.4 主画面

付録
A.1 ソースコード
A.2 既知の問題

1. 概要

Android版の SINETStreamライブラリ の使用例として、 GUI操作でユーザが入力した任意文字列をSINETStream経由で送受信する「テキスト送受信アプリ」(以降「本アプリ」と略記)を実装しました。 本書では、本アプリのAndroid端末への導入と設定、操作方法などについて概説します。

1.1 ネットワーク構成

構成

本アプリは、WriterReaderの両方の機能を具備します。 ユーザがGUI操作で指定した任意の文字列は、SINETStreamメッセージとして対向のBrokerに送信されます。 Brokerが配信した内容を再び本アプリで受信してGUI画面に表示するという動作の流れになります。 またBrokerへの接続情報やSINETStreamの動作パラメータなどの諸元をGUI操作で設定し、 その内容に応じてAndroid版の SINETStream設定ファイル を自動生成するための設定画面も用意してあります。 Brokerに関しては本書の範囲外ですので、別途記述されたものを参照ください。

1.2 前提条件

2. テキスト送受信アプリの導入

現状では、本アプリはGooglePlayからではなくNII管理サーバから配布します。

別紙 Androidサンプルアプリケーションの導入 を参照して所用のものを導入してください。アプリ更新時も同様の手順です。

3. テキスト送受信アプリの操作

3.1 画面遷移

画面遷移

<凡例>

  1. Androidのホーム画面(a)にて、アイコンEchoを押下して本アプリを起動する。
  2. 起動画面(b)にて、アイコンと著作者を一瞬表示して初期画面(c)に遷移する。
  3. 初期画面(c)にて、ボタンSettings押下により設定画面(d)に遷移する。
  4. 設定画面(d)にて、ボタンBACK押下により初期画面(c)に戻る。
  5. 初期画面(c)にて、ボタンRun押下により主画面(e)に遷移する。
  6. 主画面(e)にて、ボタンBACK押下により初期画面(c)に戻る。
  7. 初期画面(c)にて、ボタンBACK押下によりホーム画面(a)に戻る。

各画面の構成および操作詳細は後述します。

3.2 初期画面

初期画面

本アプリの起動直後に表示される初期画面です。

本アプリ導入直後のように、 SINETStream設定ファイル が存在していない、あるいは現在の設定内容が必須項目を満足していない場合、 Runボタンが無効化(灰色表示)され、画面下部にはユーザに対応を促すメッセージが表示されます。 このような場合、まずはSettingsボタンを押下してSINETStreamの動作環境設定操作を実行してください。

3.3 設定画面

Android版の SINETStreamライブラリ を使うためには、 SINETStream設定ファイル を「対向Brokerとの接続条件に適合するよう」設定する必要があります。

このためGUI操作によるSINETStream設定画面(Settings)を用意しています。 以下に示すように項目内容に応じた階層構造の画面構成となっています。

設定画面

本アプリ起動後の初期画面からボタンSettingsを押下して設定画面に遷移し、 (もろもろの設定操作を経て)初期画面に戻る際にSINETStream設定ファイルが自動生成されます。 既存の設定内容から変更が発生した場合は同設定ファイルが更新されます。

まずはBrokerと接続するため、以下の項目を必ず設定してください。 他の項目は放置で構いません。プログラム既定値が使われます。

このチュートリアルで例示したBrokerであれば以下のように設定することになります。 実際のBrokerのアドレスはお使いの環境に合わせてください。

Service Name Topic Name IP Address (or FQDN) Port Number
test-service test-topic xx.xx.xx.xx 1883

ここでTopic Nameは通信チャネル識別子として使われる文字列です。 任意の値を指定して構わないのですが、特にSTEP1の使い方においては、 バックエンドシステムの都合上、予約語sensor-data避けてください。

3.4 主画面

初期画面からボタンRunを押下して主画面(Main)を表示し、GUI操作による文字列データ送受信を実行します。 主画面は上下2段(上段が送信欄、下段が受信欄)に分割されており、それぞれWriter機能とReader機能を提供します。

WriterReaderが同じ SINETStream設定ファイル を参照するため、対向Brokerに関してサービスとトピックを共有しており、 結果的にBroker折り返しでメッセージを送受信する動作となります。

主画面

主画面の動作概要は、以下のようになります。

  1. 初期画面から主画面に遷移する際に、WriterReaderの双方が独立にBrokerに接続する。
  2. WriterReaderの双方がBrokerとの接続が完了すると、送信欄で文字列入力が可能になる。
  3. 適当な文字列を入力すると、SENDボタンが有効になる。
  4. SENDボタンを押下すると、入力文字列がBroker宛に送信される。
  5. Brokerから配信された内容が受信欄に表示される。
  6. 主画面から初期画面に戻る際に、WriterReaderの双方がBrokerとの接続を切る。

なお、主画面の送信欄でユーザが入力した内容はSINETStreamメッセージv1.2形式のペイロードとしてBrokerに送信されます。 受信欄では、SINETStreamメッセージの各項目(timestamp, data)とBroker接続時のトピック名を併せてMessageとして表示します。

付録

A.1 ソースコード

本アプリのソースコードは GitHub で公開しています。 もし何か不具合がありましたら連絡いただけると助かります。

ソース修正が必要な方は、Android開発環境 Android Studio をお手元の機材に導入して、上記ソースコードを取り込んでください。

A.2 既知の問題