Boa tarde!
Estou tendo problema com a criação de banco de dados em meu dispositivo. Ele gera o arquivo no emulador na pasta data/data/meu app.
Fiz root no dispositivo, executei chmod 777 /data/data/*. Ele cria a pasta databases no dispositivo, mas não gera os arquivos do bd. Sendo que no emulador, tudo funciona normalmente.
Alguém já passou por isso, ou sabe uma solução?
public class BancoDeDados {
private String DATABASE_NAME;
private int DATABASE_VERSION;
private String TABLE_NAME;
private String SQL_CREATE;
public BancoDeDados(String DATABASE_NAME, int DATABASE_VERSION, String TABLE_NAME, String SQL_CREATE){
this.DATABASE_NAME = DATABASE_NAME;
this.DATABASE_VERSION = DATABASE_VERSION;
this.TABLE_NAME = TABLE_NAME;
this.SQL_CREATE = SQL_CREATE;
}
public void onCreate(Context ctx,SQLiteDatabase db){
//openOrCreateDatabase --> Cria ou Abre banco de dados
//(nome.db,permissão (modo), ...)
// MODE_PRIVATE --> Priva o acesso do banco para somente aplicação
db = ctx.openOrCreateDatabase(this.DATABASE_NAME, Context.MODE_PRIVATE, null);
db.execSQL(this.SQL_CREATE); //Criando tabela caso não exista!!
db.close();
}
public void onUpgrade(Context ctx,SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + this.TABLE_NAME);
// Create tables again
onCreate(ctx,db);
}
public long onWrite(Context ctx,SQLiteDatabase db,String row,ContentValues ctv){
db = ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);
long lg = db.insert(this.TABLE_NAME,row,ctv);
db.close();
return lg;
}
public int onUpdate(Context ctx,SQLiteDatabase db,ContentValues ctv,String row,int id){
db = ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);
int x = db.update(this.TABLE_NAME, ctv, row, new String[]{String.valueOf(id)});
db.close();
return x;
}
public int onDelete(Context ctx,SQLiteDatabase db,String row,int id){
db = ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);
int x = db.delete(this.TABLE_NAME, row, new String[]{String.valueOf(id)});
db.close();
return x;
}
public void onClose(Context ctx,SQLiteDatabase db){
db = ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);
db.close();
}
}