[英]Can't read files from SDcard folder in Android device?
我正在尝试访问无根设备中Environment.getExternalStorageDirectory().getAbsolutePath() + /WhatsApp/Databases
位置中存在的WhatsApp
数据库文件夹。
我的目的是收集这些文件并解密它们,并将每个消息显示给Web portal
。 这是收集这些文件的代码:
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + location;
f = new File(path);
final File file[]=f.listFiles();
final int size = file.length;
每当我在有根设备上运行时, It is working
但是在某些无根设备上,它会抛出nullpointer
因为它无法获取所有数据库文件的列表。
我的问题是:如果设备不是root用户,是否可以准备WhatsApp Database
文件? 还是有什么办法可以做到?
我不确定其根源 。 您是否已获得针对您的应用的权限? 如果没有,您可以尝试在清单上放置uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE
,然后对其进行测试。
您可以读取数据库文件,如果设备没有植根,请尝试以下代码。
我已经在HTC的 Samsung Grand 2中尝试过这些
String path = Environment.getExternalStorageDirectory()
+ "/WhatsApp/Databases";
File file = new File(path);
if (file.exists()) {
File[] filenames = file.listFiles();
for (File tmpf : filenames) {
// Do something with the files
if (tmpf.isFile()) {
Log.e("tmpf-------->", "not add---->" + tmpf.getPath());
}
}
} else {
Log.e("folder not found", "folder not found");
}
不要忘记添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
否,如果您没有root权限,则无法从Android设备获取SQLite数据库文件,因为您无权访问数据文件夹。
但是,如果您在模拟器上运行应用程序,则可以获取数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.