将现有SQLite数据库导入Android应用程序
所以我知道有人问过类似的问题,但我找不到适合我的确切情况 我有一个创建数据库并填充它的应用程序,等等,但是我在我的设备上没有根访问权限,所以这里是我的问题。我需要用一些值填充此数据库,然后将其导入到我的应用程序/设备中 如果我有根访问权限,我可以简单地去替换/data/data/com.my.application/databases文件夹中的数据库,但由于我没有根访问权限,我需要能够将我更改的数据库导入到此位置并替换标准数据库 有人能帮我提供一些代码或示例,说明如何将数据库导入此文件夹吗?我只需要能够导入和替换现有的一个 谢谢,将现有SQLite数据库导入Android应用程序,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,所以我知道有人问过类似的问题,但我找不到适合我的确切情况 我有一个创建数据库并填充它的应用程序,等等,但是我在我的设备上没有根访问权限,所以这里是我的问题。我需要用一些值填充此数据库,然后将其导入到我的应用程序/设备中 如果我有根访问权限,我可以简单地去替换/data/data/com.my.application/databases文件夹中的数据库,但由于我没有根访问权限,我需要能够将我更改的数据库导入到此位置并替换标准数据库 有人能帮我提供一些代码或示例,说明如何将数据库导入此文件夹吗?我只
Wihan您可以使用此库在设备上使用导入的数据库: 如文档所述,您只需将数据库文件放在名为databases
/assets/databases/database.db的目录下的assets文件夹中即可
然后创建一个从SQLiteAssetHelper
扩展而来的DBHelper类,如下所示:
public class DBHelper extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "example.db";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
现在,您可以通过内容提供商和所有东西访问您的数据
您还可以使用在计算机上创建预加载的数据库
希望有帮助。公共字符串加载JsonFromAsset(上下文){
字符串json=null;
试一试{
InputStream=context.getAssets().open(“Hospital.db”);
int size=is.available();
OutputStream myoutput=新文件OutputStream(“/data/data/----包名----/databases/Hospital.db”);
字节[]缓冲区=新字节[大小];
整数长度;
而((长度=is.read(缓冲区))>0){
写入(缓冲区,0,长度);
}
//关闭溪流
myoutput.flush();
myoutput.close();
is.close();
//字节[]缓冲区=新字节[大小];
//is.read(缓冲区);
//is.close();
//json=新字符串(缓冲区,“UTF-8”);
}捕获(IOEX异常){
例如printStackTrace();
返回null;
}
返回json;
}
在这里找到了一个似乎有效的答案。需要注释行吗?用您的包名替换它@用户7294900