编辑:这是用户错误(抱歉)。我已经在下面回答了。
我正在开发一个需要访问 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) 上安装它时,我得到文件 == null。我认为这是因为我没有从 SD 卡读取数据的正确权限。当我试图在/sdcard 上列出文件时,我也得到 files == null。因此,如果没有我构建的路径,这同样适用。
此外,此应用不打算通过应用商店分发,需要使用单独复制到 SD 卡的数据,因此这是一个真实的用例。放入res/raw的数据太多(我试过了,没用)。
我也试过添加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
到manifest,虽然我只想读sd卡,但是没用。我没有找到读取存储的权限类型。
可能有一个正确的方法来做到这一点,但我还没有找到它。任何提示都会有用。
最佳答案
所以我只花了半个小时写了这个问题,然后我断开了手机并连接了它,但没有安装它作为驱动器。
这就是问题所在。现在可以了。
抱歉浪费您的时间。 :/
关于android - 是否可以在没有root权限的情况下读取已单独复制到Android sd卡的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765891/