Où Salle d'enregistrer la base de données Android?

Je suis en utilisant la Salle de la bibliothèque pour enregistrer des données dans la base de données.je veux obtenir de la base de données.

utilisé ce code

private void copyFile() {

    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath=getDatabasePath("photex_db.db").getAbsolutePath();
            String backupDBPath = "photex_db.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            if (currentDB.exists()) {
                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

il fonctionne en simple sqlLite mais n'a pas de travail pour SALLE de Bibliothèque CHAMBRE

est-il de toute façon peut obtenir de la Base de données?

Classe pour créer une Base de données avec l'aide de la Chambre
`

 @Database(entities = {ProjectDataEntity.class, SavedProjectEntity.class},
    version = 2)
 @TypeConverters(DateConverter.class)

 public abstract class AppDatabase extends RoomDatabase {

 static final String DATABASE_NAME = "photex_db";

 private static AppDatabase Instance;

 public abstract ProjectDataDao projectDataDao();

 public abstract SavedProjectDao savedProjectDao();

 public static AppDatabase getInstance(Context context) {
    if (Instance == null) {
        synchronized (AppDatabase.class) {
            if (Instance == null) {
                Instance = 
  Room.databaseBuilder(context.getApplicationContext(),
                        AppDatabase.class, DATABASE_NAME)
                        .build();
            }
        }
    }
    return Instance;
}

}
`

  • "il fonctionne en simple sqlLite" -- pas sur la plupart des appareils ou pour de nombreux utilisateurs. Jamais coder en dur des chemins. l'Utilisation getDatabasePath(), veuillez. "n'a pas de travail pour SALLE de Bibliothèque" -- si vous utilisez getDatabasePath(), il devrait fonctionner avec la Salle. Si vous rencontrez des problèmes, fournir un un minimum de reproductibles exemple, qui devrait inclure le RoomDatabase où vous de fournir les informations à la Chambre à propos de la base de données à utiliser.
  • j'ai essayé getDatabasePath() ça n'aide pas 🙁
  • Ensuite, comme je l'ai écrit, veuillez fournir une un minimum de reproductibles exemple, qui devrait inclure le RoomDatabase où vous de fournir les informations à la Chambre à propos de la base de données à utiliser.
  • J'ai mis à jour la question ,voir si c'est ce que vous entendez
  • Vous pouvez consulter this réponse. Peut-être que vous venez de créer une base de données de manière incorrecte.
InformationsquelleAutor Usman Saeed | 2017-07-08