【问题标题】:getExternalFilesDirs() not updated in ApplicationContext upon SD card insertion in API 23 & above在 API 23 及更高版本中插入 SD 卡时,getExternalFilesDirs() 未在 ApplicationContext 中更新
【发布时间】:2017-02-28 10:26:06
【问题描述】:

当应用在前台运行并插入SD卡,并尝试使用检索路径

ctx.getExternalFilesDirs(Environment.DIRECTORY_DOWNLOADS);

上下文有时是 ApplicationActivity 上下文

使用活动上下文时,获取更新后的 SD 卡路径,但使用应用程序上下文时,不获取更新后的路径

仅在 API 2324

上发生

解决方法是杀死应用程序并重新启动应用程序

有谁知道这是棉花糖虫子吗?

注意:我看到有些人在 google 中创建了问题 Issue 214247

【问题讨论】:

  • 所以你在热插拔?

标签: android android-6.0-marshmallow android-context android-sdcard


【解决方案1】:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)Environment.getExternalStorageState() 一起使用

类型 DIRECTORY_DOWNLOAD 未列为 getExternalFilesDir() 的有效参数,请查看文档:https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

【讨论】:

  • 感谢您的回复,但我尝试使用您提到的选项,但 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 它只返回主存储路径 getExternalStoragePublicDirectory: /storage/emulated/0 而不是 SD 卡路径
猜你喜欢
  • 2016-12-21
  • 1970-01-01
  • 2019-10-06
  • 2018-01-22
  • 2017-08-20
  • 2021-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多