이 절차를 시작하기 전에 이전 섹션에 설명된 대로 적절한 서비스와 Consumer SDK를 사용 설정했는지 확인하세요.
Consumer SDK를 초기화하려면 다음 단계를 따르세요.
ConsumerApi
인스턴스 가져오기
Consumer SDK를 사용하려면 앱이 싱글톤 ConsumerApi
를 비동기적으로 초기화해야 합니다. 초기화 메서드는 AuthTokenFactory
클래스를 사용하여 필요한 경우 사용자의 새 JWT 토큰을 생성합니다.
providerId
는 Google Cloud 프로젝트의 프로젝트 ID입니다. Fleet Engine 프로젝트를 만드는 방법에 대한 자세한 내용은 Fleet Engine 가이드의 Fleet Engine 프로젝트 만들기를 참고하세요.
앱은 소비자 SDK 인증에 설명된 대로 AuthTokenFactory
를 구현해야 합니다.
자바
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 및 지도 렌더러
Consumer SDK v2.0.0 이상은 Android용 Maps SDK v18.1.0 이상을 지원합니다. 다음 표에는 지도 SDK 버전별 기본 렌더러와 두 렌더러의 지원 가능 여부가 요약되어 있습니다. 가능하면 최신 렌더러를 사용하세요.
기존 렌더기를 사용해야 하는 경우 MapsInitializer.initialize()
을 사용하여 명시적으로 지정하세요.
Maps SDK 버전 | 최신 렌더러 지원 | 기존 렌더러 지원 | 기본 렌더러 |
---|---|---|---|
V18.1.0 이하 | 예 | 예 | 레거시* |
V18.2.0 | 예 | 예 | 최신 |
* 새 지도 렌더기 출시와 함께 최신 렌더기가 기본값이 됩니다.
기본 렌더러를 사용해야 하는 경우 OnMapsSdkInitializedCallback
가 결과를 반환한 후에 모든 UI 렌더링 작업을 실행하세요. UI 렌더링 작업에는 다음 작업이 포함됩니다.
GoogleMapView
또는ConsumerMapView
가 포함된 뷰를 확장합니다.ConsumerMapView
에 마커를 배치합니다.
OnMapsSdkInitializedCallback
결과를 수신한 후 이러한 작업을 실행하지 않으면 Maps SDK에서 선호하는 렌더러를 할당하지 않으며 지도 뷰가 기본 렌더러에 의해 대신 렌더링됩니다.
소비자 SDK를 초기화하기 전에 Maps SDK 초기화
Application
또는 시작Activity
클래스에서 MapsInitializer.initialize()를 호출합니다.Consumer SDK를 초기화하기 전에 렌더러 요청 결과를 기다립니다.
자세한 내용은 다음 예시를 참조하세요.
자바
@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 관련 참고사항
내부적으로 Consumer SDK 구현은 SSL/TLS를 사용하여 Fleet Engine 서비스와 안전하게 통신합니다. Android API 버전 23 이하에서는 서버와 통신하기 위해 SecurityProvider
패치가 필요할 수 있습니다. Android에서 SSL로 작업하는 방법에 관한 자세한 내용은 보안 GMS 제공자를 참고하세요.
이 도움말에는 보안 제공자를 패치하는 코드 샘플도 포함되어 있습니다.