こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

外部DBアクセスするAndroidアプリについて

Androidアプリで、外部DBに登録されているユーザを検索→一覧画面に表示し、一覧画面に表示された詳細ボタンから詳細画面へ遷移する仕組みを作りたいと思っています。

Androidから直接DBアクセスするためにはサーバ側でポートを解放しなければならず、セキュリティ上よろしくないので、サーバにPHPプログラムを置き、DBアクセスはPHPで行いたいと思っています。

しかし、検索まではいくものの、Androidへの結果の返し方がわかりません。
どなたか方法をご存じの方いらっしゃいますでしょうか。

また、そもそもこういった外部DBにある大量データを扱うアプリの場合、全てWebviewにしてしまうのが一般的なのでしょうか?なるべくならAndroidのコンポーネントを使った画面にしたいと思っているのですが。。

投稿日時 - 2012-03-16 18:52:03

QNo.7365814

すぐに回答ほしいです

質問者が選んだベストアンサー

AndroidのAsyncTaskを使用した、非同期のhttp通信でurl.openConnectionしてもらって、(この呼び出し先urlは、https://...../xxx.php?param1=aaa&...)というふうにします。
phpのプログラムは、まあ、JSON形式で返すのがベターだと思いますが。XMLでもいいですけど。
andorid側に戻ったデータを、JSONObjectで解釈すれば、簡単に変数化できると、思います。
このあたり、ぐぐってみてください。
あと、phpプログラムはwebから見えてしまうので、セキュリティには気をつける必要があります。顧客情報が出力されるなら尚更です。id/pwの処理を入れてhttps通信にするとか何とか。

投稿日時 - 2012-03-19 23:13:57

お礼

ありがとうございます!いただいた情報をヒントに、ちょっと違う方法で実現することができました。こんな感じです。

1.Android(Java)からDefaultHttpClientでPHPファイルのあるURLに対して検索条件をPOST
2.PHPで受け取ってSQLにセットし検索→XMLを作成しprintでデータを返す
3.Android(Java) でXMLをパースしてリストビューにセット

作成しているのはモック程度のもので、セキュリティ性はあまり高くなくても問題ないため(サンプルデータしか登録しないので)、PHPが置いてあるサーバにはベーシック認証かけた上で、DefaultHttpClientに認証を通す処理を入れました。

AsyncTaskはイマイチよくわからなかったのと、まずは動くことが優先だったので、とりあえずはですが同期処理にしています。
レスポンス遅いかつDBアクセス時の中断ができませんが。。

非同期処理やID/PASS認証処理等は本番環境を作成する際に適用したいと思います!

投稿日時 - 2012-03-21 20:23:07

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問