アプリのデータベースファイルをメールで送信したい。これにより、エラーが発生した場合の支援が容易になります。そのためには、アプリのインストールフォルダーを取得する必要があります。APP-FOLDER \ databases \ mydb.dbにあるdbを送信できるようにするには、どうすればよいですか。
ありがとう
アプリのデータベースファイルをメールで送信したい。これにより、エラーが発生した場合の支援が容易になります。そのためには、アプリのインストールフォルダーを取得する必要があります。APP-FOLDER \ databases \ mydb.dbにあるdbを送信できるようにするには、どうすればよいですか。
ありがとう
うまくいけば、あなたは戦略やどこから始めるべきかについて尋ねています。
あなたが従うことができるいくつかのアプローチがあります、
1) db ファイルを sdcard に保存すると、メール機能で利用できるようになります。を使用してこれを実現し、最初のパラメーターとしてSQLiteDatabase.openOrCreateDatabase(String, SQLiteDatabase.CursorFactory)
渡すだけです。"/sdcard/yrdatabase.db"
2) sdcard に保存しない場合は、単に db ファイルを sdcard に移動します。これは、次のコードを使用して実現できます。(つまり、以下の関数をボタンにバインドするか、アプリから呼び出します)
public void copyDBToSDCard() {
try {
InputStream myInput = new FileInputStream("/data/data/com.yrproject/databases/"+DATABASE_NAME);
File file = new File(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
Log.i("TAG","File creation failed for " + file);
}
}
OutputStream myOutput = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
Log.i("TAG","copied");
} catch (Exception e) {
Log.i("TAG","exception="+e);
}
}
ファイルへのアクセスが完了したらdb
、メール機能を使用してさらに使用できます。