关于HMS API Key
使用HMS(华为移动服务)时,部分套件需要API key。 API key可以在AppGallery Connect -> [项目设置] -> [基本信息]中获取
Android源码中HMS API key的重复定义
在源代码中,API key 通常如下使用。
[案例一]
主要 Activity .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)
[案例二]
字符串.xml
<!-- For example : <string name="api_key">CgB6e3x9iW/qiE9l9wAUPK0e/bJQe5uIgTlYUD4bPc8gzjriSVxDDzX2fAVjCVdUHkP+tan0Xi0sf4tj7t11TJJe</string> -->
<string name="api_key">Your API key</string>
主要 Activity .kt
// If using map kit
MapsInitializer.setApiKey(getString(R.string.api_key))
但是,这些情况必须直接将API key 放入源代码中。
实际上,在使用HSM时,您必须从AppGallery Connect下载agconnect-services.json并将其放在app文件夹下。
如果您打开 agconnect-services.json,您会发现 API key 已经包含在内。
API key 会有重复的定义。不利于源代码中的 API key 管理。
解决方案
最好的解决方案是直接使用agconnect-services.json 中的API key ,不要在源代码中另行定义。下面是一个例子。
主要 Activity .kt
val api_key = AGConnectServicesConfig.fromContext(applicationContext).getString("client/api_key")
// If using map kit
MapsInitializer.setApiKey(api_key)
最佳答案
AGConnectServicesConfig 已弃用。你可以使用这个:
val apiKey = AGConnectOptionsBuilder().build(this).getString("client/api_key")
从 agconnect-service.json 获取 key 。这可能对将来的某些人有帮助
关于android - 如何改进在 Android 源代码中使用 HMS API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63762926/