Java 无法从Android设备中的SD卡文件夹读取文件?
我正在尝试访问未根设备中Environment.getExternalStorageDirectory.getAbsolutePath+/WhatsApp/Databases位置中存在的WhatsApp数据库文件夹 我的目标是收集这些文件并解密它们,然后将每条消息显示给Web门户。以下是收集这些文件的代码:Java 无法从Android设备中的SD卡文件夹读取文件?,java,android,android-listview,whatsapp,Java,Android,Android Listview,Whatsapp,我正在尝试访问未根设备中Environment.getExternalStorageDirectory.getAbsolutePath+/WhatsApp/Databases位置中存在的WhatsApp数据库文件夹 我的目标是收集这些文件并解密它们,然后将每条消息显示给Web门户。以下是收集这些文件的代码: String path = Environment.getExternalStorageDirectory().getAbsolutePath() + location; f = new
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + location;
f = new File(path);
final File file[]=f.listFiles();
final int size = file.length;
每当我在根设备上运行时,它都会工作,但在一些未根设备上,它会抛出null指针,因为它无法获取所有数据库文件的列表
我的问题是:当设备不是根目录时,是否可以准备WhatsApp数据库文件?
或者有什么方法可以做到这一点吗?不,如果没有根目录,您就无法从Android设备获取SQLite数据库文件,因为您没有访问数据文件夹的权限
但是,如果在emulator上运行应用程序,您可以获得数据库。我不确定根效果。您是否已获得应用程序的许可?如果没有,您可以尝试将uses permission android:name=android.permission.READ_EXTERNAL_存储放在清单上,然后对其进行测试。如果设备没有根目录,您可以读取数据库文件try below代码 我已经在三星Grand 2,HTC上试用过了 别忘了添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
是否可以只为这个应用程序创建root?我还认为root不会影响这个应用程序,因为它在三星设备上工作,但在Nexus和motog上不工作
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />