关于HMS API密钥
在使用HMS (华为移动服务)时,部分套件需要API密钥。API密钥可从AppGallery连接->项目设置->常规信息中获取
Android源码中HMS API密钥定义重复
在源代码内部,API密钥的使用通常如下所示。
案例1
MainActivity.kt
// For example : private val API_KEY = "CgB6e3x9iW/qiE9l9wAUPK0e/bJQe5uIgTlYUD4bPc8gzjriSVxDDzX2fAVjCVdUHkP+tan0Xi0sf4tj7t11TJJe"
private val API_KEY = "Your API key"
// If using map kit
MapsInitializer.setApiKey(API_KEY)案例2
strings.xml
<!-- For example : <string name="api_key">CgB6e3x9iW/qiE9l9wAUPK0e/bJQe5uIgTlYUD4bPc8gzjriSVxDDzX2fAVjCVdUHkP+tan0Xi0sf4tj7t11TJJe</string> -->
<string name="api_key">Your API key</string>MainActivity.kt
// If using map kit
MapsInitializer.setApiKey(getString(R.string.api_key))然而,这些情况必须直接将API密钥放入源代码中。
实际上,在使用高速缓存时,您必须从AppGallery连接下载agconnect-services.json,并将其放在app文件夹下。
如果您打开agconnect-services.json,您可以发现已经包含了API密钥。
将会有重复的API密钥定义。这不利于源代码中的API密钥管理。
解决方案
最好的解决方案是直接使用agconnect-services.json中的API密钥,而不是在源代码中添加另一个定义。下面是一个示例。
MainActivity.kt
val api_key = AGConnectServicesConfig.fromContext(applicationContext).getString("client/api_key")
// If using map kit
MapsInitializer.setApiKey(api_key)发布于 2021-02-19 10:32:19
我最近用过地图工具包。我使用地图工具包版本:
implementation 'com.huawei.hms:maps:5.1.0.300'现在更简单了。如果包含了agconnect-services.json和*.jks,并且配置良好,作为华为官网:https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-sdk-config-agc-0000001061560289-V5
写入时不需要MapsInitializer.setApiKey(api_key)。
// MapsInitializer.setApiKey("Your API key");官方的SDK demo可能会在java代码中包含MapsInitializer.setApiKey(“您的API key");如果已经配置了agconnect-services.json,就可以将其取消连接。
发布于 2021-10-01 13:20:24
AGConnectServicesConfig已弃用。您可以使用以下命令:
val apiKey = AGConnectOptionsBuilder().build(this).getString("client/app_id")从agconnect-service.json获取密钥。这可能会对将来的某个人有所帮助
https://stackoverflow.com/questions/63762926
复制相似问题