Android용 소비자 SDK를 사용하면 빌드하는 방법을 알아보겠습니다 API에서 원하는 부분을 자체 API와 통합할 수 있습니다. 소비자 SDK 다양한 기능을 위한 API는 별도의 모듈에 캡슐화됩니다.
차량 공유 앱에서 이전 버전의 소비자 SDK를 사용하는 경우 이 모듈식 아키텍처를 사용하려면 앱을 업그레이드해야 합니다. 이 이전 가이드에는 앱 업그레이드 방법이 설명되어 있습니다.
개요
소비자 SDK 모듈식 아키텍처는 사용자 인터페이스 상태를 보유하는 세션 객체입니다. 이전 버전의 경우 앱이 상태 간에 이동했다는 것을 알 수 있습니다. 다음으로 바꿉니다. 이 모듈식 아키텍처에서는 세션 객체를 지도에 세션을 표시하는 옵션을 사용할 수 있습니다. 세션이 없는 경우 빈 지도가 표시됩니다. 더 이상 'empty'가 없습니다. 또는 '초기화됨' 있습니다.
세션 객체는 모듈의 단일 수명 주기 사용 인스턴스를 나타냅니다. 세션은 모듈 API에 대한 액세스 포인트입니다. 예를 들어 한 번의 이동 후에 여정 공유 세션을 만들 수 있습니다. 상호작용 세션 객체를 사용하여 이동을 모니터링합니다.
세션 객체는 모듈 유형과 연결됩니다. 세션 객체의 초기화에 사용된 객체의 수명 주기와 연결됩니다.
TRIP_A를 추적하기 위해 TripModel
객체를 만든다고 가정해 보겠습니다.
TRIP_A에 대해 TripModel
객체를 다시 가져오려고 하면
동일한 TripModel
객체를 가져옵니다. TRIP_B을(를) 추적하려면 새
TripModel
객체.
세션 상태
세션은 다음과 같은 여러 상태 중 하나일 수 있습니다.
생성된 세션은 세션 객체로 표시됩니다. 직접 만들기
create
메서드를 호출하여 세션을 종료해야 합니다. 예를 들면 다음과 같습니다.JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
시작된 세션은 데이터 및 값 업데이트를 위해 등록됩니다. 몇 가지 기능을 제공합니다. 다음 코드를 호출하여 세션을 시작합니다.
start
메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다. 예를 들면 다음과 같습니다.sessionA.start()
표시된 세션은 자동으로 시작됩니다. 사용자 인터페이스 요소를 표시합니다. 데이터 업데이트에 대한 응답으로 업데이트합니다 세션을 표시하는 경우
showSession
메서드를 호출하면 됩니다. 예를 들면 다음과 같습니다.ConsumerController.showSession(sessionA)
중지된 세션에서는 데이터 새로고침이 중지되고 사용자 인터페이스 요소입니다.
stop
메서드를 호출하여 세션을 중지합니다. 예를 들면 다음과 같습니다.sessionA.stop()
데이터 전용 및 사용자 인터페이스 구성요소 사용
데이터 전용 구성요소 중 하나를 사용하여 차량 공유 앱을 만들 수 있습니다. 또는 사용자 인터페이스 요소 API에 의해 제공될 수 있습니다.
데이터 전용 구성요소 사용
데이터 전용 구성요소를 사용하여 차량 공유 앱을 만들려면 다음 단계를 따르세요.
ConsumerApi
객체를 초기화합니다.ConsumerApi
에서TripModelManager
객체를 가져옵니다.TripModelManager
로 이동 모니터링을 시작하여TripModel
객체를 수신합니다.TripModel
객체에 콜백을 등록합니다.
다음 예는 데이터 전용 구성요소를 사용하는 방법을 보여줍니다.
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})
사용자 인터페이스 요소 API 사용
ConsumerController
객체를 사용하여 액세스
사용자 인터페이스 요소 API입니다.
주문형 차량 공유 및 배송 솔루션 사용자 인터페이스로 차량 공유 앱 만들기 요소 API:
ConsumerApi
객체를 초기화합니다.ConsumerApi
객체에서TripModelManager
객체를 가져옵니다.TripModelManager
에서 하나의 이동을 추적하는TripModel
객체를 가져옵니다.ConsumerMap[View/Fragment]
를 애플리케이션 뷰에 추가합니다.ConsumerMap[View/Fragment]
에서ConsumerController
객체를 가져옵니다.TripModel
객체를 컨트롤러에 제공하여JourneySharingSession
객체를 가져옵니다.- 컨트롤러를 사용하여
JourneySharingSession
을 표시합니다.
다음 예는 사용자 인터페이스 API를 사용하는 방법을 보여줍니다.
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = TripModelManager.getTripModel("trip_A");
// Session is NOT automatically started when created.
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
JourneySharingSession jsSessionB = JourneySharingSession.createInstance(tripB);
// But a session is automatically started when shown.
ConsumerController.showSession(jsSessionA);
ConsumerController.showSession(jsSessionB); // hides trip A; shows trip B.
ConsumerController.hideAllSessions(); // don't show any sessions
// Unregister listeners and delete UI elements of jsSessionA.
consumerController.showSession(jsSessionA);
jsSessionA.stop();
// Recreates and shows UI elements of jsSessionA.
jsSessionA.start();
모듈식 아키텍처 코드 변경사항
차량 공유 앱에서 이전 버전의 소비자 SDK를 사용하는 경우 업데이트된 모듈식 아키텍처에서는 코드를 일부 변경해야 합니다. 이 섹션에서는 이러한 변경사항 중 일부를 설명합니다.
위치 정보 액세스 권한
FINE_LOCATION
권한이 더 이상 필요하지 않음
있습니다.
경로 모니터링
업데이트된 모듈식 아키텍처에는 두 가지 모두에 대한 코드 변경이 필요함 데이터 레이어 및 사용자 인터페이스 사용자로 구성됩니다.
이전 버전에서는 데이터 영역 사용자가 다음 코드를 사용하여 이동 모니터링을 실행합니다.
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})
모듈식 아키텍처를 사용하면 데이터 레이어 사용자가 다음 코드를 참조하세요.
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})
이전 버전에서는 사용자 인터페이스 사용자가 이동 모니터링을 처리할 수 있었습니다. 다음 코드를 사용합니다.
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()
모듈식 아키텍처를 사용하면 사용자 인터페이스 사용자가 다음 코드를 참조하세요.
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");
ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);
지도 중심 재설정
지도뷰 또는 프래그먼트가 더 이상 사용자의 위치로 확대/축소되지 않음 를 호출할 수 없습니다. 여전히 활성화된 여정 공유 세션이 오랫동안 표시되도록 자동으로 확대/축소합니다. 자동 카메라 기능이 사용 설정되어 있을 때 발생합니다. 자동 카메라는 기본적으로 사용 설정되어 있습니다.
이전 버전에서는 다음 코드를 사용하여 카메라를 중앙에 배치했습니다. 다음과 같습니다.
consumerController.centerMapForState()
모듈식 아키텍처를 사용하면 다음 코드를 사용할 수 있습니다.
CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
googleMap.animateCamera(cameraUpdate);
// OR googleMap.moveCamera(cameraUpdate);
}
이전 버전에서 자동 카메라 기능을 사용 중지하려면 다음 코드를 사용합니다.
consumerController.disableAutoCamera(true);
모듈식 아키텍처를 사용하면 다음 코드를 사용할 수 있습니다.
consumerController.setAutoCameraEnabled(false);
맞춤설정
주문형 차량 공유 및 배송 솔루션 맞춤 FAB가 지도에서 삭제되었습니다.
FAB의 연결된 메서드도 삭제되었습니다.
ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()