SQLite não cria arquivo no dispositivo, apenas no emulador
1 resposta
androidsqlite
M
marcusluiz83
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.
publicclassBancoDeDados{privateStringDATABASE_NAME;privateintDATABASE_VERSION;privateStringTABLE_NAME;privateStringSQL_CREATE;publicBancoDeDados(StringDATABASE_NAME,intDATABASE_VERSION,StringTABLE_NAME,StringSQL_CREATE){this.DATABASE_NAME=DATABASE_NAME;this.DATABASE_VERSION=DATABASE_VERSION;this.TABLE_NAME=TABLE_NAME;this.SQL_CREATE=SQL_CREATE;}publicvoidonCreate(Contextctx,SQLiteDatabasedb){//openOrCreateDatabase --> Cria ou Abre banco de dados//(nome.db,permissão (modo), ...)// MODE_PRIVATE --> Priva o acesso do banco para somente aplicaçãodb=ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);db.execSQL(this.SQL_CREATE);//Criando tabela caso não exista!!db.close();}publicvoidonUpgrade(Contextctx,SQLiteDatabasedb,intoldVersion,intnewVersion){// Drop older table if existeddb.execSQL("DROP TABLE IF EXISTS "+this.TABLE_NAME);// Create tables againonCreate(ctx,db);}publiclongonWrite(Contextctx,SQLiteDatabasedb,Stringrow,ContentValuesctv){db=ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);longlg=db.insert(this.TABLE_NAME,row,ctv);db.close();returnlg;}publicintonUpdate(Contextctx,SQLiteDatabasedb,ContentValuesctv,Stringrow,intid){db=ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);intx=db.update(this.TABLE_NAME,ctv,row,newString[]{String.valueOf(id)});db.close();returnx;}publicintonDelete(Contextctx,SQLiteDatabasedb,Stringrow,intid){db=ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);intx=db.delete(this.TABLE_NAME,row,newString[]{String.valueOf(id)});db.close();returnx;}publicvoidonClose(Contextctx,SQLiteDatabasedb){db=ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE,null);db.close();}}