在Android 12中,该方法调用需要多秒才能返回:
``` val descriptor = contentResolver.openAssetFileDescriptor(rootUri, "r") ```
我传递了一个树形Uri,它代表一个USB驱动器的根目录。调用的执行时间取决于根目录所占用的空间大小。因此,对于1GB的空间,这个调用需要大约10秒钟。而在之前的Android版本中,这个调用只需要几毫秒就能返回。
我的目标是使用下面的代码来测量USB驱动器上的空间。是否有其他方法可以让这个过程在合理的时间内完成?
``` val descriptor = contentResolver.openAssetFileDescriptor(rootUri, "r") ```
我传递了一个树形Uri,它代表一个USB驱动器的根目录。调用的执行时间取决于根目录所占用的空间大小。因此,对于1GB的空间,这个调用需要大约10秒钟。而在之前的Android版本中,这个调用只需要几毫秒就能返回。
我的目标是使用下面的代码来测量USB驱动器上的空间。是否有其他方法可以让这个过程在合理的时间内完成?
val descriptor = contentResolver.openAssetFileDescriptor(rootUri, "r")
val stats = Os.fstatvfs(descriptor!!.fileDescriptor)
val availableSpace = stats.f_bavail * stats.f_bsize
contentResolver.openAssetFileDescriptor()
这个调用上。我包含了其余的代码只是为了让你了解我试图实现什么。如果我测量这三行中的每一行,第一行需要多秒钟,而其他两行几乎是瞬间完成的。 - Gavin Wright