소비자 SDK 초기화

이 절차를 시작하기 전에 이전 섹션에 설명된 대로 적절한 서비스와 소비자 SDK를 사용 설정했는지 확인하세요.

소비자 SDK를 초기화하려면 다음 단계를 따르세요.

  1. ConsumerAPI 인스턴스 가져오기
  2. 선호 렌더러를 요청하도록 Maps 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()를 사용하여 이를 명시적으로 지정합니다.

Maps SDK 버전 최신 렌더기 지원 기존 렌더러 지원 기본 렌더러
V18.1.0 이하 기존*
V18.2.0 최신

* 새 지도 렌더기가 출시되면 최신 렌더기가 기본값이 됩니다.

선호하는 렌더러를 사용해야 하는 경우 OnMapsSdkInitializedCallback가 결과를 반환한 후에 모든 UI 렌더링 작업을 실행합니다. UI 렌더링 작업에는 다음 작업이 포함됩니다.

  • GoogleMapView 또는 ConsumerMapView가 포함된 뷰를 확장합니다.

  • ConsumerMapView에 마커를 배치합니다.

OnMapsSdkInitializedCallback 결과를 수신한 후 이러한 작업을 실행하지 않으면 지도 SDK가 기본 렌더러를 할당하지 않으며 대신 기본 렌더러로 지도 뷰가 렌더링됩니다.

소비자 SDK를 초기화하기 전에 Maps SDK 초기화

  1. Application 또는 시작 Activity 클래스에서 MapsInitializer.initialize()를 호출합니다.

  2. 소비자 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 제공업체를 참고하세요. 이 도움말에는 보안 제공업체 패치용 코드 샘플도 포함되어 있습니다.

다음 단계

지도 설정하기