0

アプリのデータベースファイルをメールで送信したい。これにより、エラーが発生した場合の支援が容易になります。そのためには、アプリのインストールフォルダーを取得する必要があります。APP-FOLDER \ databases \ mydb.dbにあるdbを送信できるようにするには、どうすればよいですか。

ありがとう

4

1 に答える 1

0

うまくいけば、あなたは戦略やどこから始めるべきかについて尋ねています。

あなたが従うことができるいくつかのアプローチがあります、

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、メール機能を使用してさらに使用できます。

于 2013-01-11T12:02:44.997 に答える