Как скачать базу данных sqlite приложения для Android? - PullRequest
3 голосов
/ 28 сентября 2011

Я использую базу данных sqlite в моем приложении для Android. Я хочу скачать базу данных на ПК. Может ли кто-нибудь любезно сказать мне, что делать?

Ответы [ 2 ]

6 голосов
/ 28 сентября 2011

, если ваше приложение находится в эмуляторе, вы можете просто использовать DDMS и открыть /data/data/your.package.name/databases.

, если у вас есть мобильное приложение.вот что я делаю, чтобы скопировать базу данных в папку sdcard root.

    /** The name of the database file */
    static final String DATABASE_NAME = "mydatabase.db";
    static final String DATABASE_NAME_FULL = "/data/data/com.my.application/databases/" + DATABASE_NAME;

    public static boolean backUpDataBase(Context context){
    boolean result = true;

    // Source path in the application database folder
    String appDbPath = DATABASE_NAME_FULL;

    // Destination Path to the sdcard app folder
    String sdFolder =  Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + DATABASE_NAME;


    InputStream myInput = null;
    OutputStream myOutput = null;
    try {
        //Open your local db as the input stream
        myInput = new FileInputStream(appDbPath);
        //Open the empty db as the output stream
        myOutput = new FileOutputStream(sdFolder);

        //transfer bytes from the inputfile to the outputfile
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }
    } catch (IOException e) {
        result = false;
        e.printStackTrace();
    } finally {
        try {
            //Close the streams
            if(myOutput!=null){
                myOutput.flush();
                myOutput.close();
            }
            if(myInput!=null){
                myInput.close();
            }
        } catch (IOException e) { } 
    }

    return result;
}

, вам нужно это в вашем manifest.xml

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
1 голос
/ 28 сентября 2011

Если ваш эмулятор работает, вы можете получить к нему доступ, открыв перспективу DDMS (Window > Open perspective > DDMS), откройте data/data/your.package.name/databases и вытяните его на свой компьютер.

Вы не можете получить его с вашего устройства, если оно не рутировано. Если это так, вы не можете получить доступ к каталогу, где он находится, потому что он защищен. Вы должны скопировать его с помощью корневого обозревателя на свою SD-карту, а затем вы можете перенести его с помощью DDMS на свой компьютер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...