Di chuyển cho mô-đun SDK của người tiêu dùng Android

Consumer SDK dành cho Android cho phép bạn tạo ứng dụng Chia sẻ chuyến đi bằng cách sử dụng cấu trúc mô-đun. Bạn có thể sử dụng các phần của API mà bạn muốn sử dụng cho ứng dụng cụ thể và tích hợp các phần đó với API của riêng bạn. API SDK người dùng cho các tính năng khác nhau được đóng gói thành các mô-đun riêng biệt.

Nếu ứng dụng Chia sẻ chuyến đi của bạn sử dụng các phiên bản SDK người dùng cũ hơn, bạn sẽ cần nâng cấp ứng dụng để dùng cấu trúc mô-đun này. Hướng dẫn di chuyển này mô tả cách nâng cấp ứng dụng của bạn.

Tổng quan

Cấu trúc mô-đun của SDK người dùng giới thiệu một đối tượng Phiên chứa trạng thái giao diện người dùng. Trong các phiên bản trước của SDK người tiêu dùng, ứng dụng chuyển qua giữa các trạng thái. Với cấu trúc mô-đun này, bạn sẽ tạo một đối tượng Phiên và có thể chọn hiển thị phiên đó trên bản đồ. Nếu không có phiên nào xuất hiện, thì bản đồ sẽ trống. Không còn trạng thái "trống" hoặc "đã khởi tạo".

Đối tượng Phiên đại diện cho một phiên bản sử dụng trong vòng đời của một mô-đun. Phiên hoạt động là điểm truy cập vào các API mô-đun. Ví dụ: một phiên Chia sẻ hành trình tuân theo một chuyến đi. Bạn sẽ tương tác với đối tượng Session để theo dõi chuyến đi.

Đối tượng Phiên được liên kết với một loại mô-đun. Hành vi của đối tượng Phiên được liên kết với vòng đời của đối tượng được dùng để khởi chạy hành vi đó.

Giả sử bạn tạo một đối tượng TripModel để theo dõi TRIP_A. Nếu cố gắng lấy lại đối tượng TripModel cho TRIP_A, bạn sẽ nhận được cùng một đối tượng TripModel. Để theo dõi TRIP_B, hãy lấy đối tượng TripModel mới.

Trạng thái phiên

Phiên có thể ở một trong một số trạng thái:

  • Một phiên đã tạo được biểu thị bằng đối tượng Phiên. Bạn tạo một phiên bằng cách gọi phương thức create. Ví dụ:

    JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
    
  • Phiên đã bắt đầu được đăng ký để cập nhật dữ liệu và giá trị của các phần tử trên giao diện người dùng. Bạn bắt đầu một phiên bằng cách gọi phương thức start. Ví dụ:

    sessionA.start()
    
  • Một phiên được hiển thị sẽ tự động bắt đầu. Nền tảng này hiển thị các phần tử điện tử trên giao diện người dùng và cập nhật các phần tử đó theo nội dung cập nhật dữ liệu. Bạn hiển thị một phiên bằng cách gọi phương thức showSession. Ví dụ:

    ConsumerController.showSession(sessionA)
    
  • Một phiên đã dừng sẽ ngừng làm mới dữ liệu và ngừng cập nhật các phần tử trên giao diện người dùng. Bạn dừng một phiên bằng cách gọi phương thức stop. Ví dụ:

    sessionA.stop()
    

Sử dụng các thành phần giao diện người dùng và chỉ dữ liệu

Bạn có thể tạo ứng dụng đi chung xe bằng các thành phần chỉ có dữ liệu hoặc các API thành phần giao diện người dùng do Giải pháp gọi xe và giao hàng theo yêu cầu cung cấp.

Sử dụng các thành phần chỉ dữ liệu

Cách tạo ứng dụng đi chung xe bằng thành phần chỉ dữ liệu:

  • Khởi động một đối tượng ConsumerApi.
  • Lấy đối tượng TripModelManager từ ConsumerApi.
  • Bắt đầu theo dõi chuyến đi bằng TripModelManager để nhận đối tượng TripModel.
  • Đăng ký các lệnh gọi lại trên đối tượng TripModel.

Ví dụ sau đây cho thấy cách sử dụng các thành phần chỉ dữ liệu:

TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})

Sử dụng các API phần tử trên giao diện người dùng

Sử dụng đối tượng ConsumerController để truy cập vào các API phần tử giao diện người dùng của Giải pháp gọi xe và phân phối theo yêu cầu.

Cách tạo một ứng dụng đi chung xe bằng các API phần tử giao diện người dùng cho Giải pháp gọi xe và phân phối theo yêu cầu:

  • Khởi động đối tượng ConsumerApi.
  • Lấy một đối tượng TripModelManager từ đối tượng ConsumerApi.
  • Lấy đối tượng TripModel từ TripModelManager đang theo dõi một chuyến đi.
  • Thêm ConsumerMap[View/Fragment] vào khung hiển thị ứng dụng.
  • Lấy đối tượng ConsumerController từ ConsumerMap[View/Fragment].
  • Cung cấp đối tượng TripModel cho Tay điều khiển để lấy đối tượng JourneySharingSession.
  • Sử dụng Trình điều khiển để hiển thị JourneySharingSession.

Ví dụ sau đây cho thấy cách sử dụng các API giao diện người dùng:

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();

Thay đổi mã cấu trúc mô-đun

Nếu ứng dụng Chia sẻ đường đi của bạn sử dụng các phiên bản trước đây của SDK người dùng, thì cấu trúc mô-đun mới cập nhật sẽ cần một số thay đổi đối với mã của bạn. Phần này mô tả một số thay đổi đó.

Quyền truy cập thông tin vị trí

SDK người dùng không còn yêu cầu quyền FINE_LOCATION.

Giám sát chuyến đi

Cấu trúc mô-đun mới cập nhật yêu cầu thay đổi mã cho cả người dùng lớp dữ liệu và người dùng giao diện người dùng.

Trong các phiên bản cũ, người dùng theo lớp dữ liệu có thể xử lý việc giám sát chuyến đi bằng mã sau:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})

Khi sử dụng cấu trúc mô-đun, người dùng lớp dữ liệu sẽ dùng mã sau:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})

Trong các phiên bản cũ, người dùng giao diện người dùng có thể xử lý việc giám sát chuyến đi bằng mã sau:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")

ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()

Khi sử dụng cấu trúc mô-đun, người dùng giao diện người dùng sẽ sử dụng mã sau:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");

ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);

Căn giữa bản đồ

Mảnh hoặc khung hiển thị bản đồ không còn phóng to vị trí của người dùng khi khởi chạy khi không có phiên hoạt động nào. Camera sẽ vẫn tự động thu phóng để hiển thị phiên Chia sẻ hành trình đang hoạt động, miễn là tính năng AutoCamera đang bật. AutoCamera được bật theo mặc định.

Trong các phiên bản cũ, bạn sẽ sử dụng mã sau đây để căn giữa camera cho phiên hoạt động hiện tại:

consumerController.centerMapForState()

Khi sử dụng cấu trúc mô-đun, bạn sẽ dùng mã sau:

CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
   googleMap.animateCamera(cameraUpdate);
   // OR googleMap.moveCamera(cameraUpdate);
}

Để tắt tính năng AutoCamera trong các phiên bản cũ, bạn cần sử dụng mã sau:

consumerController.disableAutoCamera(true);

Khi sử dụng cấu trúc mô-đun, bạn sẽ dùng mã sau:

consumerController.setAutoCameraEnabled(false);

Tuỳ chỉnh

FAB tuỳ chỉnh Giải pháp gọi xe và giao hàng theo yêu cầu đã bị xoá khỏi bản đồ.

FAB tuỳ chỉnh

Các phương thức liên kết cho FAB cũng đã bị xoá:

ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()