在开始这些流程之前,请确保您已按照前面部分中的说明启用适当的服务和 Consumer SDK。
如需初始化使用方 SDK,请按以下步骤操作:
获取 ConsumerApi
实例
如需使用消费者 SDK,您的应用需要初始化单例
ConsumerApi
异步执行。初始化方法接受
AuthTokenFactory
类,用于在必要时为用户生成新的 JWT 令牌。
providerId
是您的 Google Cloud 项目的项目 ID。有关
如需了解如何创建 Fleet Engine 项目,请参阅
在 Fleet Engine 指南中创建 Fleet Engine 项目。
您的应用应实现 AuthTokenFactory
,如消费者 SDK 中所述
身份验证。
Java
Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
this, "myProviderId", authTokenFactory);
consumerApiTask.addOnSuccessListener(
consumerApi -> this.consumerApi = consumerApi);
Kotlin
val consumerApiTask =
ConsumerApi.initialize(this, "myProviderId", authTokenFactory)
consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
this@YourActivity.consumerApi = consumerApi
}
Maps SDK 和地图渲染程序
使用方 SDK v2.0.0 及更高版本支持 Maps SDK for Android v18.1.0 和
。下表汇总了各 Maps SDK 版本的默认渲染程序
以及这两种渲染程序的可支持性如有可能,请使用最新版渲染程序。
如果必须使用旧版渲染程序,请使用以下方式进行明确指定:
MapsInitializer.initialize()
。
Google 地图 SDK 版本 | 支持最新版渲染程序 | 支持旧版渲染程序 | 默认渲染程序 |
---|---|---|---|
v18.1.0 及更低版本 | 是 | 是 | 旧版* |
V18.2.0 | 是 | 是 | 最新 |
* 随着新版地图渲染程序的发布,最新版渲染程序将成为默认渲染程序。
如果必须使用首选渲染程序,请运行所有界面渲染操作
after OnMapsSdkInitializedCallback
会返回一个结果。界面呈现
包括以下操作:
膨胀包含
GoogleMapView
或ConsumerMapView
的视图。正在
ConsumerMapView
上放置标记。
如果您在收到
OnMapsSdkInitializedCallback
结果,则 Maps SDK 不会分配您的
首选渲染程序,而地图视图则由默认渲染程序渲染。
先初始化 Maps SDK,然后再初始化 Consumer SDK
在
Application
或启动Activity
类中,调用 MapsInitializer.initialize()请在初始化 Consumer SDK 之前等待渲染程序请求结果。
如需了解详情,请参阅以下示例。
Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initViews();
MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,
new OnMapsSdkInitializedCallback() {
@Override
public void onMapsSdkInitialized(Renderer renderer) {
switch (renderer) {
case LATEST:
Log.i("maps_renderer", "LATEST renderer");
break;
case LEGACY:
Log.i("maps_renderer", "LEGACY renderer");
break;
}
initializeConsumerSdk();
}
});
}
Kotlin
fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
initViews()
MapsInitializer.initialize(
getApplicationContext(), Renderer.LATEST,
object : OnMapsSdkInitializedCallback() {
fun onMapsSdkInitialized(renderer: Renderer?) {
when (renderer) {
LATEST -> Log.i("maps_renderer", "LATEST renderer")
LEGACY -> Log.i("maps_renderer", "LEGACY renderer")
}
initializeConsumerSdk()
}
})
}
SSL/TLS 注意事项
在内部,使用方 SDK 实现使用 SSL/TLS 安全地进行通信
Fleet Engine 服务Android API 版本 23 或更早版本可能需要
用于与服务器通信的 SecurityProvider
补丁。更多信息
有关在 Android 中使用 SSL 的信息,请参阅 GMS 安全
提供商。
本文还包含用于为安全提供程序打补丁的代码示例。