Android 从其他应用读取SQLlite数据库
我想问一下如何从另一个应用程序读取DB。我们已经在设备上运行了一个应用程序,但我们还有另一个项目引用了以前的数据库 我有dbAdapter.class来读取数据库的路径,但是我发现了一些错误,比如“无法打开数据库”Android 从其他应用读取SQLlite数据库,android,sqlite,Android,Sqlite,我想问一下如何从另一个应用程序读取DB。我们已经在设备上运行了一个应用程序,但我们还有另一个项目引用了以前的数据库 我有dbAdapter.class来读取数据库的路径,但是我发现了一些错误,比如“无法打开数据库” private static String DB_PATH = "/data/data/com.project.factory.apps/databases/"; private static final String DB_NAME = "dbData.db"; private s
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;
}
}
我在调用
getList()时出错
函数,如果代码错误,则需要建议或更正。这是不可能的。您应该研究一下,这将允许您使用允许您查询和指定所需数据的语法来访问其他应用程序中的数据。我认为除了使用ContentProviders之外,如果还有其他方法,这是不可能的contectproviders需要如何更改上一个应用程序的脚本,对吗?因为以前的应用程序是由另一个部门开发的,所以我们只能访问DB。我们可以通过手机根目录访问吗?或者有其他方式访问吗?即使根目录访问,如果你获得访问权限,你将如何根目录用户设备?我们可以使用该链接吗?这是des出于这个确切的原因,以这种方式签名。为什么你要将数据获取到一个不是你的或作者没有公开的应用程序中。如果这个应用程序是“真正”你的,那么你需要更新应用程序以公开数据,或者将数据集中存储在服务器上,并访问两个应用程序中的数据。正如@shakeb所说,是的,使用根d如果您可以获得访问权限,您将在其上运行的所有设备是否都已根目录?
db.createDatabase();
db.getReadableDatabase();
data = db.getList();