如何更改Room数据库的默认位置?

lca*_*ral 6 android android-room

我想更改Android会议室数据库的位置.我知道数据库在文件系统内部,我需要获得root权限,但我不想根我的手机.

这个想法是将数据库位置更改为SD卡,并且可以在不使用root手机的情况下访问它

joe*_*e06 11

只需将位置路径放在数据库的名称中即可.
即:

AppDatabase db = Room.databaseBuilder(getApplicationContext(),
        AppDatabase.class, "database-name").build();
Run Code Online (Sandbox Code Playgroud)

将路由器放在数据库名称中.
即:

 AppDatabase db = Room.databaseBuilder(getApplicationContext(),
        AppDatabase.class, "/storage/emulated/0/folder/database-name").build();
Run Code Online (Sandbox Code Playgroud)

并且不要忘记给应用程序写入权限

thx @vitidev

  • 不,这不是正确的解决方案..因为"无法打开数据库"会给你错误 (3认同)