Вменяемые приложения не хранят свою бд в открытом доступе. Так что так не получится получить базу с утройства. Только с эмулятора. Для того, что бы скопировать базу с телефона надо сначала ее скопировать в публичное место, а потом уже можно таким скриптом ее получить, ну или в ручную через DDMS.
Для того, что бы скопировать базу из приватного хранилища в публичное можно использовать примерно такокй код:
| Код | public static void fileCopy(@NotNull File source, @NotNull File destination) throws IOException { FileChannel inChannel = new FileInputStream(source).getChannel(); FileChannel outChannel = new FileOutputStream(destination).getChannel();
try{ inChannel.transferTo(0, inChannel.size(), outChannel); } finally { if (inChannel != null) inChannel.close(); if(outChannel != null) outChannel.close(); } }
@SuppressWarnings("ResultOfMethodCallIgnored") public static void saveBackupDatabaseFile(@NotNull Context context, @NotNull String dataBaseName, @NotNull String backupName) { File dbFile = context.getDatabasePath(dataBaseName); File exportDir = new File(Environment.getExternalStorageDirectory(), dataBaseBackupFolder); if (!exportDir.exists()){ exportDir.mkdirs(); }
File backup = new File(exportDir, backupName);
try { backup.createNewFile(); fileCopy(dbFile, backup); } catch (IOException e) { e.printStackTrace(); } }
|
ЗЫЖ Если нужен постоянный активный доступ для того, что бы работать с этой базой, то придется делать не только провайдет, но и скорее всего собственный сервер. |