소비자 SDK 초기화

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

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

  1. ConsumerAPI 인스턴스 가져오기
  2. 기본 렌더기를 요청하도록 Maps SDK 초기화

ConsumerApi 인스턴스 가져오기

Consumer SDK를 사용하려면 앱에서 싱글톤 ConsumerApi를 비동기식으로 초기화해야 합니다. 초기화 메서드는 필요한 경우 사용자의 새 JWT 토큰을 생성하는 AuthTokenFactory 클래스를 가져옵니다.

providerId는 Google Cloud 프로젝트의 프로젝트 ID 입니다. Fleet Engine 프로젝트 만들기에 관한 자세한 내용은 Fleet Engine 가이드에서 Fleet Engine 프로젝트 만들기를 참고하세요.

앱은 AuthTokenFactory을(를) Consumer SDK 인증에 설명된 대로 구현해야 합니다.

자바

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 이상을 지원합니다. 다음 표에는 Maps SDK 버전별 기본 렌더기와 두 렌더기의 지원 가능성이 요약되어 있습니다. 가능하면 최신 렌더기를 사용하세요. 기존 렌더기를 사용해야 하는 경우 MapsInitializer.initialize()를 사용하여 명시적으로 지정하세요.

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

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

기본 렌더기를 사용해야 하는 경우 OnMapsSdkInitializedCallback이 결과를 반환한 모든 UI 렌더링 작업을 실행하세요. UI 렌더링 작업에는 다음 작업이 포함됩니다.

  • GoogleMapView 또는 ConsumerMapView가 포함된 뷰 확장

  • ConsumerMapView에 마커 배치

OnMapsSdkInitializedCallback 결과를 받은 후 이러한 작업을 실행하지 않으면 Maps SDK에서 기본 렌더기를 할당하지 않고 지도 뷰가 기본 렌더기로 렌더링됩니다.

Consumer SDK를 초기화하기 전에 Maps SDK 초기화

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

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

다음 단계

지도 설정