【问题标题】:Why does getExternalFilesDirs return different results depending on which context is used?为什么 getExternalFilesDirs 根据使用的上下文返回不同的结果?
【发布时间】:2018-09-20 00:49:00
【问题描述】:

这个很奇怪。我使用Context.getExternalFilesDirs 获取可移动SD 卡的路径。这在运行 Android 6.0.1 的 LG X Power 上运行良好。但是,在 Android 6.0 上的 LG Spirit H440N 上,根据使用的上下文,它会给我不同的结果。如果我在

上调用此方法
  • 活动,我得到一个大小为 2 的数组,其中包含内部和可移动 SD 卡文件路径
  • 应用程序上下文,我得到一个大小为 1 的数组,仅包含内部文件路径的路径

为什么我会根据调用方法的上下文得到不同的结果?权限在每种情况下的工作方式是否不同?

请注意,我已经在清单中列出了这两个权限:

<uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

【问题讨论】:

  • Why does getExternalFilesDirs return different results depending on which context is used? 奇怪的问题。你说它不适用于 LG X 电源。
  • Note that I've listed both permissions in the manifest: 无关。您不需要这些权限即可调用该函数。
  • 感谢您非常有用的 cmets!

标签: android android-context


【解决方案1】:

是的,我也这么认为。我在使用 Redmi 设备时遇到了同样的问题。

applicationapplicationContext Context.getExternalFilesDirs(null) 只显示 1 个文件(内部存储),但当我使用 baseContextFirebaseMessagingService context 时效果很好。

所以,我认为baseContext.getExternalFilesDirs(null) 对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 2013-03-10
    • 1970-01-01
    • 2020-11-20
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多