我想以编程方式在我的Android手机上显示所有数据库并在listview上显示所有数据库,但我无法获得任何解决方案。
我从Google获得此代码,但它并未显示listview上的所有现有数据库。
private ArrayList<String> getDBFILES()
{
ArrayList<String> arr = new ArrayList<String>();
String db_path, rand_name, str_tmp;
//ad.1-2. random file name for db
rand_name = new Random().nextInt((4000000-2000+1)+2000)+".db";
db_path = openOrCreateDatabase(rand_name, MODE_PRIVATE, null).getPath();
//ad.3.
deleteDatabase(rand_name);
//ad.4.
db_path = db_path.replace("/" + rand_name, "");
//ad.5.
File [] files = new File(db_path).listFiles();
if (files == null) { return null; }
//so now we get the filenames one by one
for (int i = 0; i < files.length; i++)
{
str_tmp = files[i].getName();
if (!str_tmp.endsWith("-journal"))
{ arr.add(str_tmp); }
}
return arr;
}
答案 0 :(得分:1)
嗯,你不能!您只能访问您的应用数据库!如果您有多个应用程序,您仍然可以使用某些trikes从其他应用程序访问数据库! (在同一个沙箱下运行所有这些)
虽然您无权访问其他应用程序数据库,但某些应用程序(包括android系统本身)提供了内容提供程序。您无法直接操作数据库,但您可以为最终在数据库上运行查询的每个应用程序使用内容提供程序。