【发布时间】:2020-04-21 18:12:21
【问题描述】:
我已尝试按照以下代码打开画廊中的特定文件夹,但它对我不起作用,并且出现无法找到项目的错误。
fun openDirectoryInGallery(context: Context, directory: String) {
val intent = Intent(Intent.ACTION_VIEW)
val file = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), directory)
} else {
File(Environment.DIRECTORY_PICTURES.plus(File.separator).plus(directory))
}
intent.setDataAndType(Uri.withAppendedPath(Uri.fromFile(file), directory), "*/*")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(context, Intent.createChooser(intent, "Open folder"), Bundle())
}
【问题讨论】:
-
我不太确定它是否允许您在图库中打开特定文件夹,因为将列出多个带有选择器意图的应用程序,并且它们可能都无法处理打开特定文件夹的意图.我建议您扫描该文件夹并创建自己的画廊视图。这样一来,所有设备都会保持一致。
-
@ShivamPokhriyal 我找到了解决方案,但它不起作用stackoverflow.com/questions/44858799/…
-
该解决方案适用于
2017,并不意味着也适用于2020。 -
正如我已经提到的,这种方法不能确保图库应用程序会打开您指定的文件夹。可以这样想:假设您已经构建了一个图库应用程序,它将显示您手机中的所有照片,并且其他一些开发人员想要在图库中打开一个特定的文件夹并使用上述意图。现在,您的应用程序也将列在选择器意图中,但您尚未处理显示特定文件夹的意图。如果选择了您的应用程序,它将显示所有照片。这就是我告诉你建立自己的画廊的原因,因为这种行为可能不会在所有设备上保持一致。
-
我希望这个链接可以帮助你。 stackoverflow.com/questions/13418807/…
标签: android android-10.0