为什么getExternalFilesDirs会根据使用的上下文返回不同的结果?

时间:2018-04-10 11:53:29

标签: android android-context

这个很奇怪。我使用const body = JSON.stringify(params); const headers = new HttpHeaders({'Content-Type': 'application/json'}); return this.http.post('/api/execute', body, {headers: headers}) .map((response) => response) .catch((error) => Observable.throw(error)); 来获取可移动SD卡的路径。这适用于运行Android 6.0.1的LG X Power。但是,在Android 6.0上的LG Spirit H440N上,根据使用的上下文,它给出了不同的结果。如果我在

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

为什么我会根据我调用方法的上下文得到不同的结果?权限在每个上下文中的工作方式不同吗?

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

Context.getExternalFilesDirs

1 个答案:

答案 0 :(得分:0)

是的,我也这样认为。 Redmi设备也遇到了同样的问题。

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

所以,我认为baseContext.getExternalFilesDirs(null)将为您服务。