- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在 Android 6.0 模拟器上从 sdcard 读取 jpeg 文件,但文件列表返回 null。示例代码可以在我的手机上运行:
String sdcard = Environment.getExternalStorageDirectory().toString();
File sdcard_dir = new File(sdcard);
if (sdcard_dir.isDirectory()) {
File[] fileNames = sdcard_dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.toString().endsWith(".jpg") ? true : false;
}
});
}
文件名 = null!
我可以使用 adb shell 在模拟器上列出图像文件:
权限已添加到AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
还有什么我可以做的吗?
我必须使用模拟器,因为我的设备目前无法升级到 Android 6.0,我想测试一些新的 API。
最佳答案
我观察到完全相同的问题,即使在添加了 Android 6.0 所需的运行时权限代码之后也是如此。
在我的 Activity 中,我有以下代码:
int permissionCheck1 = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
int permissionCheck2 = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheck1 != PackageManager.PERMISSION_GRANTED || permissionCheck2 != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_READWRITE_STORAGE);
}
当用户确认读/写存储权限请求时,我会收到预期的回调。
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions,
int[] grantResults) {
if (requestCode == REQUEST_READWRITE_STORAGE) {
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
finishCreationStep();
}
}
}
我已经在调试器中验证了读取和写入权限都已被授予。然而随后执行的读取存储的调用失败了:
File[] possible_files = mrpDir.listFiles();
对 listFiles() 的调用返回 null。如果我终止该应用程序,并转到我的应用程序的设置 > 应用程序,我会看到已授予存储权限。如果我也终止该应用程序,然后重新启动它,那么权限就在那里,正如预期的那样,并且 listFiles() 调用工作得很好。因此,换句话说,在应用程序终止并重新启动之前,对权限的更改不会生效。有没有什么方法可以让应用程序识别更改的权限,而不必让用户终止并手动重新启动它?
与该帖子的发起人一样,我正在使用 API 23 模拟器运行,因为我目前无法访问 Android 6 设备。所以我想可能是模拟器有问题。但这似乎不太可能。
关于android - listFiles() 在 Android 6.0 模拟器上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296223/
当我尝试使用方法 someFile.listFiles(FileFilter foobar) 时,出现错误 The method listFiles(FilenameFilter) in the ty
我曾经从一本关于方法引用的书中读到以下代码。 File[] hiddenFiles = new File(".").listFiles(File::isHidden) 当我从文件 API 查找 lis
这个问题已经有答案了: Listing only files in directory [closed] (3 个回答) 已关闭 5 年前。 我注意到listFiles()方法返回文件和目录,但是我想
作为处理的结果,一些数据文件被写入磁盘。 两台服务器(MAC 和 Linux)匹配的文件数 系统间的文件名相同 文件内容在系统之间是相同的,由 md5sum 衡量 然后根据从所述文件中读取的内容计算报
我编写了以下程序,它读取目录中的所有文件。所有文件名均由数字组成(例如 10023134.txt)。 File dir = new File(directoryPath); File[] files
我正在尝试迭代文件夹 我的文件位于 D:\PROJECT_FOLDER\rootProject\semiRootProject\project\build\resources\main\com\xxx
我使用此代码以递归方式从给定目录获取所有文件。 List fileList = (List) FileUtils.listFiles(new File(directoryName), null , t
import java.io.File; public class FileDemo { public static void main(String[] args) { String sou
我的问题是,简而言之,如何将 File.listFiles() 返回的 File 对象转换为 File 的扩展类?我将返回的对象放入 ArrayList 中。我的第一个想法是将文件对象转换为我的类,F
private static void getFTPFileProperties(FTPClient client, String ftpLocation, String pa
似乎方法 listFiles() 也列出了所有目录并威胁所有结果作为目录。 最佳答案 File Java 中的对象可以表示文件或目录。可以通过isFile()查看是文件还是目录和 isDirector
在我的项目中,我有一个 resources 目录,里面有一个 my_directory。 my_directory 包含文本文件。 我想循环这个目录: URL resource = Resources
我想使用列表文件而不是手动设置对象集合: @Paramaters public static Collection data() { Object[][] data = new Object
所以,我有一个 ListView,它显示特定目录中所有文件的名称。此应用程序还会删除文件并将新文件添加到目录中。 我希望文件按创建顺序显示,但 File(directory).listFiles()
我正在使用 Android Emulator 2.2 版本开发一个小应用程序。我应该列出目录下的所有图像文件(jpg)文件。我通过 ADB puash 命令将文件复制到“/data”。 示例:/dat
有什么方法可以在已打包到 jar 中的目录上使用 listFiles() 吗? 假设我的资源目录中有一个包含一些文本文件的目录:texts/text1.txt 和 texts/text2.txt。 在
我是 hadoop 和其他东西的业余爱好者。现在,我正在尝试访问 hadoop 集群 (HDFS) 并从客户端 eclipse 检索文件列表。我在hadoop java client上设置好需要的配置
我在看这个方法:FileSystem.listFiles(Path f, boolean recursive) List the statuses and block locations of the
在一个文件夹中,我有三个文件 A.txt、B.txt、C.txt。我正在执行下面提到的程序。 for(File a: path.listFiles()){ Sy
File.listFiles() 方法列出文件夹的内容。然而,在 Windows 上,当您在根驱动器上调用该方法时,它还会产生一些 - 缺少更好的短语 - “虚拟”文件夹(如“文档和设置”,在最近的
我是一名优秀的程序员,十分优秀!