从其他应用程序中读取SQLite DB

时间:2013-12-20 02:38:21

标签: android sqlite

我想问一下如何从另一个应用程序中读取数据库。我们已经在设备上运行了一个应用程序,但我们有另一个项目引用了以前的数据库。

我有dbAdapter.class来读取数据库的路径,但是我发现了一些错误,比如“无法打开数据库。”

private static String DB_PATH = "/data/data/com.project.factory.apps/databases/";
private static final String DB_NAME = "dbData.db";
private static String DB_PATH_SDCARD = Environment.getExternalStorageDirectory() + "/data/com.project.factory.apps/databases/";
private Context myContext;

public dbAdapter(Context context) {
        super(context, DB_NAME, null, 1);
        myContext = context;
}


public boolean createDatabase(){
    if(DatabaseIsExist()) {
        return false;
    } else{
        return false;
    }
}

private boolean DatabaseIsExist(){
        checkDb = null;
        try{
            String myPath = DB_PATH + DB_NAME;
             File directory = new File(DB_PATH_SDCARD);
             if(!directory.exists())
                 directory.mkdirs();

             checkDb = SQLiteDatabase.openDatabase("/data/data/com.project.factory.apps/databases/dbData.db", null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
        }
        catch(SQLiteException e){
            Log.e("File not found in data",e.toString());
            return false;
        }
        return true;
    }   

    public List<t_listInfo> getList() {
        try {
            dataAdapter = DaoManager.createDao(this.getConnectionSource(), t_listInfo.class);
            return dataAdapter.queryForAll();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
MyActivity.Class

上的

db.createDatabase();
db.getReadableDatabase();

data = db.getList();

我在调用getList()函数时出错,如果代码错误则需要建议或更正。

1 个答案:

答案 0 :(得分:2)

这是不可能的。您应该查看ContentProviders,这将允许您使用允许您查询和指定所需数据的语法来访问其他应用程序中的数据。