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