Raspberry Pi 3データベースへAndroidからアクセス
津路です。
忙しくて、前回から1か月ほど経過してしまいました。
さて、残るは、phpプログラムを仕組んで、Androidアプリからアクセスするといった作業です。
1.データベースアクセスphpプログラム
アクセス権を定義するプログラムと、データベースにアクセスするプログラム、レコードを取得、挿入するプログラムと、分けて作成します。
/var/www/html配下に、以上4つのプログラムを保存します。
レコード取得では、array変数にデータを取り込み、responseというarray変数に積み込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if(mysql_num_rows($result)>0) { $response["Parts"] = array(); while($row = mysql_fetch_array($result)){ $Part = array(); $Part["ID"] = $row["ID"]; $Part["Name"] = $row["Name"]; $Part["part_nr"] = $row["part_nr"]; array_push($response["Parts"], $Part); } 最後にjson_encodeします。 echo json_encode($response, JSON_UNESCAPED_UNICODE); } |
レコード挿入では、結果をjson_encodeします。
2.Androidアプリ作成
Visual Studio 2017を使うか、Android Studioを起動し、新プロジェクトを作成します。
レイアウトでは、単に内容を表示するTextViewとButtonを横長で縦に並べます。
1つ目のボタンでは、データを取得して表示します。
次に、製品名と製品番号を入れるEditBoxを、その下にButtonを、それぞれ縦に並べます。
2つ目のボタンでは、EditBoxからデータを取得して、データベースにアクセスし、レコードを挿入します。
manifestでは、permissionを追加します。
<uses-permission android:name="android.permission.INTERNET" />
buttonクリックイベントハンドラでは、raspberry pi 3端末のデータベースへアクセスするタスククラスを定義します。
class Create_Part extends AsyncTask<String, String, String> {
}
1つ目のStringは、取得か挿入かのモード
2つ目のStringは、url
と定義したり。
接続には、
HttpURLConnection con = (HttpURLConnection) url.openConnection();
を使いました。
そして、結果の文字列を取得します。
1 2 3 | String str = InputStreamToString(con.getInputStream()); |
結果の表示をして終わりです。
1 2 3 4 5 | protected void onPostExecute(String result) { resultingview.setText(result); } |