繁体   English   中英

无法从Android设备的SDcard文件夹中读取文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM