Android Here Maps以编程方式设置api键

bka*_*len 5 android api-key heremaps heremaps-android-sdk

我正在使用 Here maps Premium SDK 3.15,在文档中,它说要在 android 清单文件中设置 id、令牌和许可证。我在 build.gradle 中将 id、token 和 license 设置为清单占位符,并像下面一样放入 Android.manifest。

    <!-- Here Maps -->
    <meta-data android:name="com.here.android.maps.appid"
        android:value="${here_map_app_id}"/>
    <meta-data android:name="com.here.android.maps.apptoken"
        android:value="${here_map_app_code}"/>
    <meta-data android:name="com.here.android.maps.license.key"
        android:value="${here_map_licence_key}"/>
Run Code Online (Sandbox Code Playgroud)

我的项目遇到了静态代码分析,其中一项发现是“应用程序代码中存在硬编码的秘密令牌”。这意味着我将此处的地图凭据保留在 build.gradle 中,这不行。

我的问题是我应该在哪里保存这些凭据,有没有办法设置 Here 以编程方式而不是 Android 映射 SDK。清单(以防万一,我不保留在项目中并从后端检索)

Cod*_*mon 1

不,除了通过 gradle 注入之外,您不能以编程方式更改清单文件或资源。根据这里的地图:https ://developer.here.com/documentation/android-premium/3.15/dev_guide/topics/credentials.html只有一种方法来设置凭据,但是您可以采取一些安全措施,请参阅https: //stackoverflow.com/a/46475968/8461344