大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Raspberry Pi 3データベースへAndroidからアクセス

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2018/04/17
最終更新日:2018/04/17
カテゴリー:技術情報
タグ:

津路です。
忙しくて、前回から1か月ほど経過してしまいました。

さて、残るは、phpプログラムを仕組んで、Androidアプリからアクセスするといった作業です。
1.データベースアクセスphpプログラム
アクセス権を定義するプログラムと、データベースにアクセスするプログラム、レコードを取得、挿入するプログラムと、分けて作成します。
/var/www/html配下に、以上4つのプログラムを保存します。
レコード取得では、array変数にデータを取り込み、responseというarray変数に積み込みます。


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();を使いました。
そして、結果の文字列を取得します。


String str = InputStreamToString(con.getInputStream());

結果の表示をして終わりです。


protected void onPostExecute(String result) {
  resultingview.setText(result);
}

    上に戻る