Dans mon application android j'utilise la base de données SQLite. Et je dois avoir une option dans l'application pour télécharger le fichier de base de données.
Parce que parfois, je dois voir les données là-bas, afin que l'utilisateur télécharge le fichier et l'envoyer à moi et je vais naviguer à l'aide d'un navigateur SQLite.
Est-ce qui est faisable? si oui, comment?
String src = "/data/data/myPackage/databases/Mydb.db";
String dest = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath();
copyFileOrDirectory(src , dest);
public static void copyFileOrDirectory(String srcDir, String dstDir) {
try {
File src = new File(srcDir);
File dst = new File(dstDir, src.getName());
copyFile(src, dst);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void copyFile(File sourceFile, File destFile) throws IOException {
if (!destFile.getParentFile().exists())
destFile.getParentFile().mkdirs();
if (!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
} finally {
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
}
}
Habituellement, la base de données SQLite est disponible dans le /data/data/your.applications.package/databases/database.db
chemin.
Donc, vous pouvez utiliser cette voie; cependant, je suggère que vous obtenez le chemin de la base de données de la manière suivante:
File dbFile = getDatabasePath("dbname");
String dbPath = dbFile.getPath();
Ensuite, vous pouvez copier la base de données de ce dossier dans le dossier que vous désirez. Copie la base de données à Downloads
pourrait simuler le « téléchargement » de la base de données SQLite.