2

编辑:这是用户错误(抱歉)。我已经在下面回答了。

我正在开发一个需要访问 sd 卡上数据的应用程序。当我在我的开发设备(Android 2.1 的 odroid)上运行时,我具有 root 访问权限并且可以使用以下命令构建路径:

File sdcard = Environment.getExternalStorageDirectory();
String path = sdcard.getAbsolutePath() + File.separator + "mydata"
File data = new File(path);
File[] files = data.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String filename) {
        return filename.toLowerCase().endsWith(".xyz");
    }});

但是,当我在没有 root 访问权限的手机(2.1)上安装它时,我得到 files == null。我认为这是因为我没有从 sd 卡读取数据的正确权限。当我试图在 /sdcard 上列出文件时,我也会得到 files == null。因此,如果没有我构建的路径,同样适用。

此外,此应用程序不打算通过应用程序商店分发,并且需要使用单独复制到 sd 卡的数据,因此这是一个真实的用例。放入 res/raw 的数据太多(我试过了,没用)。

我也尝试过添加:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

到清单,即使我只想读取 sd 卡,但它没有帮助。我还没有找到读取存储的权限类型。

可能有一个正确的方法可以做到这一点,但我一直无法找到它。任何提示都会很有用。

4

1 回答 1

1

所以我只花了半个小时写了这个问题,然后我断开了电话并连接了它,但没有将它安装为驱动器。

这就是问题所在。现在它起作用了。

很抱歉浪费您的时间。:/

于 2010-05-04T14:05:20.923 回答