2017年1月20日

Androidアプリ開発

 

Androidアプリのポイントは、2点です。

準備:サンプルAndroidアプリの利用

Androidは詳しくないので、サンプルソース(generic_asynctask-master)を利用しました。
参照先:https://github.com/kosalgeek/generic_asynctask

このサンプルコードは、エラーで悩むことになりましたが下記で解決できました。

ちょっと解説

 

 

 

 

 

利用時の注意点

1.利用者が手を加える必要があるソース(業務ロジック)は、MainActivity.javaのみで対応可能です。
2.このサンプルコードのままでは、パラメタ設定処理ができない箇所があるので修正が必要です。
  原因と対処方法がわからず、オオハマりのポイントでした。

 

 

 

消し線の行を、以下に修正が必要です。引数が不足しています。

//
PostResponseAsyncTask task =
new PostResponseAsyncTask(MainActivity.this, postData, MainActivity.this);
//
1.PHPアプリの起動方法

 

PHPアプリを起動する際に、画面項目情報をパラメタとしてセットします。

// Send data
try {
// Defined URL where to send data

HashMap<String, String> postData = new HashMap<String, String>();

postData.put("usernum", Xuser_num );
postData.put("name", Xuser_name);
postData.put("addr", Xuser_addr );

PostResponseAsyncTask task =
new PostResponseAsyncTask(MainActivity.this, postData, MainActivity.this);

task.execute("http://192.168.1.3/php_select.php");//select
} 
catch (Exception ex) {

}

postData.putで、連携時の必要な値をセットしていきます。
ここでは、”usernum”に Xuser_numなどがセットされて、連携時に
usernum=XXXX&name=XXXX&addr=XXXXの形式に編集してくれます。

2.PHPアプリからのデータ受け取り

 

PHP処理後、「項目:output」で受け取りますので、「#」を区切り文字にして画面にセットします。

受け取り後は、I/Fの仕方とAndroidの作りによるので、参考まで。

PHPからの戻りデータ: “name=#ZZZZZZ#YYYYYYY”#“;
ZZZZZZ:名前、YYYYYYY:住所

String xxx[] = output.split("#", 0);

if (xxx[0].equals("name=")){//最初の文字で正常・異常の判断

    Tname.setText(xxx[1]);//名前
    Taddr.setText(xxx[2]);//住所

}else{

    Tmsg.setText("エラー");
}

関連記事

    ios/AndroidでHTTP通信アプリのまとめ