将现有SQLite数据库导入Android应用程序

将现有SQLite数据库导入Android应用程序,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,所以我知道有人问过类似的问题,但我找不到适合我的确切情况 我有一个创建数据库并填充它的应用程序,等等,但是我在我的设备上没有根访问权限,所以这里是我的问题。我需要用一些值填充此数据库,然后将其导入到我的应用程序/设备中 如果我有根访问权限,我可以简单地去替换/data/data/com.my.application/databases文件夹中的数据库,但由于我没有根访问权限,我需要能够将我更改的数据库导入到此位置并替换标准数据库 有人能帮我提供一些代码或示例,说明如何将数据库导入此文件夹吗?我只

所以我知道有人问过类似的问题,但我找不到适合我的确切情况

我有一个创建数据库并填充它的应用程序,等等,但是我在我的设备上没有根访问权限,所以这里是我的问题。我需要用一些值填充此数据库,然后将其导入到我的应用程序/设备中

如果我有根访问权限,我可以简单地去替换/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