私はナッツに行くよ!多分誰かが私を助けることができますか? 実行中のサーバにsqliteデータベースがあります。これはPHPスクリプトのために受け取ります。 (これを明確にするために:私は応答としてデータベースを提供するphpスクリプトを呼び出しています)。応答で私は今私のアプリケーションのために使用する通常の* .dbファイルに "解析"しようとしています。php-scriptでダウンロードしてAndroidアプリ用データベースを使用
アセットフォルダに* .dbを入れてもアプリは正常に動作します。しかし、アプリを呼び出すたびに更新されたデータベースを取得する必要があります。したがって、私は何とかサーバーから受け取る必要があります。
私は彼らがなぜphpスクリプトを使っているのかわかりませんが、アプリのiOS版と完全に動作します。だから私はスクリプトがうまくいくことを100%確信しています。
これに関するヒントや解決策はありますか? ありがとう!
編集:これは私がやろうとしていることです。 プライベートvoid copyDatabase(){ InputStream myInputDB = null; OutputStream myOutputDB = null; HttpResponse response = null; //作成した空のdbへのパス 文字列dbFilePath = DB_PATH + KeyConstants.DB_NAME;
// Creating HTTP client
HttpClient httpClient = new DefaultHttpClient();
// Creating HTTP Post
HttpPost httpPost = new HttpPost(
"http://USERNAME:[email protected]/u/db.php");
try {
response = httpClient.execute(httpPost);
//Open your local db as the input stream
myInputDB = response.getEntity().getContent();
//Open the empty db as the output stream
myOutputDB = new FileOutputStream(dbFilePath);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInputDB.read(buffer)) > 0){
myOutputDB.write(buffer, 0, length);
}
//Close the streams
myOutputDB.flush();
myOutputDB.close();
myInputDB.close();
} catch (IOException ioEXC) {
throw new Error("Problem copying database from resource file.");
}
私の問題は、私はデータベース全体私はアプリを起動するたびにダウンロードする必要があるということである。この問題を通読してみてください。データベースを取得するには、私にデータベースを送るPHPスクリプトを呼び出さなければなりません。そして、私は何とかPHPスクリプトの応答を動作するsqliteファイルに変換する必要があります。 – njsmecho
@njsmecho PHPスクリプトは代わりに何を返すのですか?それはsqlite DBのバイナリデータですか?そうであれば、応答をsqlite.dbファイルとして保存し、SqliteHelper(またはデータ操作クラスが呼び出されたもの)だけをそのファイルにポイントすることができます。または? – shadyyx
@njsmechoあなたのコードとあなたの質問にはまだ問題はありません。 DBファイルは正しく作成されていますか?あなたはそのファイルにアクセスしてSQLite DBとして読むことができますか?私の答えの中で提供されるリンクで問題を読んでみてください。 – shadyyx