TRL:Terminal Request Library
ターミナルリクエストライブラリ

TrlClientLib(Android版)- Android Studioでの利用

インストール方法
  1. PC上にダウンロードしたファイルを展開(解凍)してください。
  2. 「TrlClientLib.jar」をAndroid Studioプロジェクトフォルダ内、使用するModuleのフォルダ配下の「libs」フォルダ内に置いて下さい。

アンインストール方法
  1. 特にありません。ファイルを削除してください。

使用方法


build.gradleの変更
 使用するModuleの「build.gradle」にパス情報を追記してください。
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/TrlClientLib.jar')
}

パーミッションの追加
 ACCESS_WIFI_STATEとINTERNETを追加してください。WRITE_EXTERNAL_STORAGEは使用状況によっては必要になります。
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

importの追加
 使用するActivityのクラスでimportしてください。
import jp.main.trl.trlclientlib.*;

implementsの追加
 使用するActivityのimplementsにTrlInterfaceを追記してください。
public class MainActivity extends AppCompatActivity implements TrlInterface, OnClickListener{
}

クラスの宣言
 使用するActivityのクラスメンバとして、TrlClientLibクラスを宣言してください。
    private TrlClientLib objTrlClient;

インスタンスの作成
 使用するActivityのコンストラクタなどでTrlClientLibクラスのインスタンスを作成します。
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        objTrlClient = new TrlClientLib(this);
        setContentView(R.layout.activity_main);
    }

リクエスト
 サーバーへ以下のリクエストを処理する例を記載しています。
  1. 商品名問い合わせ
    • クライアントからのリクエスト情報(_strData)には、"0001"(処理区分)に続いて商品コードをセット。
    • サーバーからのレスポンス情報として、商品名を取得します。
 以下の例では、通信状況を表示するためTextView(lblLog)をひとつ配置しています。ボタンを配置し、Button(btnButton1)のTextを"通信開始"としておきます。ButtonのClick時のメソッドに、リクエストのロジックを追加します。 また、"0001"という処理コードに続けて、EditText(txtCode)の文字列(商品コード)をリクエスト情報としてセットしています。
    @Override
    public void onClick(View v) {

        String strErrorMessage;

        lblLog.setText("");

        if (btnButton1.getText().toString().equals("通信開始")){
            strErrorMessage = objTrlClient.TrlRequest("192.168.0.2", 65001, Build.DEVICE,
                    "0001" + txtCode.getText().toString(), getExternalFilesDir(null).toString());
            if(!strErrorMessage.equals("")){
                Toast.makeText(this, strErrorMessage, Toast.LENGTH_LONG).show();
            }else{
                btnButton1.setText("通信停止");
            }
        }else{
            objTrlClient.TrlAbort();
        }
    }
TrlRequestメソッド
サーバーへリクエストします。 public String TrlRequest( String _strIp, int _intPort, String _strClientKey, String _strData, String _strFolder)
引数内容
_strIp String型
サーバーのIPアドレスです。
_intPort int型
サーバー側で待ち受けているTCPソケット番号です。
_strClientKey String型
サーバー側でクライアントを識別するための文字列です。各端末で重複しない値をセットすることを推奨します。
_strData String型
サーバーへ受け渡すリクエスト情報で、任意の文字列です。処理を判別するコードや値をサーバー側へ受け渡すことができます。 ※送信できるリクエストは1KBまでです。 なお、この引数はShift-JISにエンコードしてバイナリデータとして送信され、サーバー側で適切なエンコードに戻されます。よって、送信できる文字数は、すべてが半角文字であれば1024文字、すべてが全角文字であれば512文字ということになります。バイナリ情報などを送信したい場合は一旦ファイルに出力してから、サーバーからTrlRecvFileメソッドを実行して受け渡してください。
_strFolder String型
サーバーからファイル送受信が実行された際、読み込み先、保存先として使用するフォルダです。 サーバーからTrlSendFileが実行された際、このフォルダに保存されます。 サーバーからTrlRecvFileが実行された際、このフォルダにあるファイルが送信されますので、事前にこのフォルダに必要なファイルを準備しておく必要があります。
戻り値
String型
メソッドが失敗した場合に、エラーメッセージが返されます。成功した場合は空文字が返されます。
TrlAbortメソッド
サーバーへの通信を強制中断します。 void TrlAbort()

イベント用メソッドの追加
 TrlInterfaceのTrlClientEventイベント時に実行されるメソッドを記述します。
    @Override
    public void TrlClientEvent(TRL_STATUS _enumStatus, String _strData, String _strErrorMessage){

        switch(_enumStatus){
            case mInfo:
                SetList("INF:" + _strData);
                break;
            case mResult:
                SetList("RET:" + _strData);
                break;
            case mError:
                SetList("ERR:" + _strErrorMessage.replace("\n",""));
                break;
        }
    }

    private void SetList(final String _strValue){
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                String strKbn = _strValue.substring(0, 4);
                lblLog.setText(_strValue + "\n" + lblLog.getText().toString());
                if(strKbn.equals("RET:")){
                    btnButton1.setText("通信開始");
                    Toast.makeText(getApplicationContext(), "商品名:" + _strValue.substring(4), Toast.LENGTH_LONG).show();
                }else if(strKbn.equals("ERR:")){
                    btnButton1.setText("通信開始");
                    Toast.makeText(getApplicationContext(), "エラー:" + _strValue.substring(4), Toast.LENGTH_LONG).show();
                }
            }
        });
    }
TrlClientEventメソッド
サーバーからレスポンスを受け取った場合や通信エラーとなった場合に発生します。 また、サーバーから実行されている状況が報告されます。 public void TrlClientEvent(TRL_STATUS _enumStatus, String _strData, String _strErrorMessage)
引数内容
_enumStatus TRL_STATUS型
mInfo
リクエストスレッドからの状況報告です。_strDataに報告内容が格納されています。

mResult
リクエストスレッドからの終了報告です。_strDataにサーバーからのレスポンス情報が格納されています。リクエストスレッドは停止します。

mError
リクエストスレッドからのエラー報告です。_strErrorMessageにエラー内容が格納されています。リクエストスレッドは停止します。TrlAbortが呼ばれた際も発生します。
_strData String型
サーバーからレスポンス時にセットされたレスポンス情報です。この値はサーバーから任意の文字列をセットできるので、処理の結果情報などを受け取ることができます。
_strErrorMessage String型
通信が失敗した場合などに、エラーメッセージが返されます。

ダウンロード
ファイル内容
20160517_TrlClientLib_Android.zip ベータ版(バージョン0.0.0.0)を配布します。十分、動作ご確認の上、ご利用ください。 ※Android4.0以降対応(minSdkVersion:14)です。 ※通信時は無線LANがONになっている必要があります。





累積:
今日:
昨日:
Copyright (C) 2016 森山商店 All Rights Reserved.