我需要从手机内存(/ storage/emulated/0)打开一个数据库,并且打开的数据库(由Linux的DB浏览器创建)的“SQLiteCantOpenDatabaseException”有表“android_metadata”和他们各自的字段(locale ... es_US)。打开数据库Android
我需要开放,从外部数据库中读取数据(应用程序需要从网站上下载的数据库和读取数据,并把中的TextView到应用程序的活动)
该应用程序有权读取和写入外部存储器下面
代码(仅按钮的代码来获取数据库的引用)
case R.id.button4:
{
int ID,IDn,IDa;
String cabeceras[] ={"nombre","apellido",_ID},lectura=new String(),err="";
ArrayList<String> arregloDatos = new ArrayList<>();
try {
SQLiteDatabase db = SQLiteDatabase.openDatabase(Environment.getExternalStorageDirectory().getPath() +"/"+"pruebaDB.db", null, SQLiteDatabase.OPEN_READWRITE);
Cursor cursor = db.query("persona", cabeceras, null, null, null, null, null);
ID = cursor.getColumnIndex(_ID);
IDn = cursor.getColumnIndex("nombre");
IDa = cursor.getColumnIndex("apellido");
while (cursor.moveToNext()) {
lectura = cursor.getString(ID) + " " + cursor.getString(IDn) + " " + cursor.getString(IDa);
arregloDatos.add(lectura);
}
Intent i = new Intent(this, Main2Activity.class);
i.putStringArrayListExtra("cadena", arregloDatos);
startActivity(i);
}catch (Exception g)
{
Toast msg =Toast.makeText(this,g.getClass().toString(),Toast.LENGTH_SHORT);
msg.show();
}
break;
}
编辑:我发现这个问题,这个问题是光标,becose我评论它,应用程序没有显示出任何异常。 现在...我的问题是“如何从SQliteDatabase对象读取数据”
确定您的数据库路径正确吗? – gdaras
是的,y从Toast中读取并获得“/ storage/emulated/0”并检查文件是否存在我的文件资源管理器 –