【发布时间】:2017-02-06 11:45:37
【问题描述】:
我们如何更改目录以下载地图。默认情况下,它是内部存储。但我需要用户选择下载目录(设备/SD)。
我尝试使用 setIsolatedDiskCacheRootPath 方法。当我使用 SECONDARY_STORAGE 路径时,SDK 未初始化。当我使用EXTERNAL_STORAGE成功改变目录,但是这个目录位于设备内存中(“/storage/emulated/0”)。
com.here.android.mpa.common.MapSettings.setIsolatedDiskCacheRootPath(
System.getenv("SECONDARY_STORAGE")+"/heremap"
, "MyHereMapService");
清单:
<service
android:name="com.here.android.mpa.service.MapService"
android:exported="true"
android:label="MyHereMapService"
android:process="global.Here.Map.Service.v2">
<intent-filter>
<action android:name="MyHereMapService" />
</intent-filter>
</service>
更新: 我能够获得通往 SD 的真正途径。我使用方法 ContextCompat.getExternalFilesDirs(activity, null),它返回到 SD 卡(二级存储)的真实路径。
【问题讨论】:
-
.. to download the map。哪张地图? -
@greenapps ,这里地图。 SDK 允许您下载地图并将其保存在设备内存中。(默认情况下)。但我想更改默认目录。
-
System.getenv("SECONDARY_STORAGE") 返回什么?我不希望它会在大多数设备上设置。
-
@DavidLeong,System.getenv("SECONDARY_STORAGE") 返回“/storage/extSdCard”。在另一台设备上返回“/storage/sdcard1”。并且在这两种设备上,SDK 都不会初始化。
-
你的应用有android.permission.WRITE_EXTERNAL_STORAGE权限吗?