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

SDK người tiêu dùng dành cho Android cho phép bạn tạo ứng dụng Chia sẻ chuyến đi bằng một cấu trúc mô-đun. Bạn có thể dùng các phần của API mà mình muốn để sử dụng cho ứng dụng cụ thể của bạn cũng như tích hợp chúng với API của riêng bạn. SDK dành cho người tiêu dùng API dành 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 sử dụng các phiên bản cũ của SDK Người tiêu dùng, bạn sẽ cần nâng cấp ứng dụng của mình để sử dụng cấu trúc mô-đun này. Chiến dịch này hướng dẫn di chuyển mô tả cách nâng cấp ứng dụng của bạn.

Tổng quan

Ra mắt cấu trúc mô-đun SDK tiêu dùng đối tượng Phiên lưu giữ 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, các ứng dụng được lưu chuyển giữa các trạng thái. Bằng cấu trúc mô-đun này, bạn sẽ tạo một đối tượng Phiên và có tuỳ chọn hiển thị phiên hoạt động trên bản đồ. Nếu không có phiên nào được hiển thị, bản đồ trống. Không còn cụm từ "trống" hoặc "đã khởi chạy" trạng thái.

Đối tượng Phiên đại diện cho một thực thể sử dụng vòng đời duy nhất của mô-đun. Phiên là điểm truy cập trong các API mô-đun. Ví dụ: Phiên Chia sẻ hành trình diễn ra sau một chuyến đi duy nhất. Bạn tương tác với đối tượng Phiên để theo dõi chuyến đi.

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

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.

Trạng thái phiên

Một phiên có thể ở một trong nhiều trạng thái:

  • 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 hàm start. Ví dụ:

    sessionA.start()
    
  • Một phiên đã hiển thị sẽ tự động bắt đầu. 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 chúng để phản hồi với 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)
    
  • Phiên đã dừng sẽ ngừng làm mới dữ liệu và ngừng cập nhật dữ liệu 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 chỉ có dữ liệu và giao diện người dùng

Bạn có thể tạo ứng dụng đi chung xe bằng cách sử dụng các thành phần chỉ có dữ liệu hoặc API phần tử 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 thành phần chỉ có dữ liệu

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

  • Khởi động một đối tượng ConsumerApi.
  • Lấy đối tượng TripModelManager qua 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ỉ có 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ử giao diện người dùng

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

Để tạo ứng dụng đi chung xe với giao diện người dùng của Giải pháp gọi xe và giao hàng theo yêu cầu API phần tử:

  • Khởi động đối tượng ConsumerApi.
  • Lấy đối tượng TripModelManager từ đối tượng ConsumerApi.
  • Lấy đối tượng TripModel từ TripModelManager để theo dõi một chuyến đi.
  • Thêm ConsumerMap[View/Fragment] vào thành phần hiển thị ứng dụng.
  • Lấy đối tượng ConsumerController từ ConsumerMap[View/Fragment].
  • Cung cấp đối tượng TripModel cho Trình đ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ẻ chuyến đi sử dụng các phiên bản cũ của SDK Người tiêu dùng, cấu trúc mô-đun được cập nhật sẽ yêu cầu 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 vị trí

FINE_LOCATION quyền không còn cần thiết nữa bởi Người tiêu dùng SDK.

Giám sát chuyến đi

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

Trong các phiên bản cũ, người dùng lớp dữ liệu có thể xử lý 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ẽ 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ý tính năng theo dõi 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 đồ

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

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

consumerController.centerMapForState()

Khi 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ó thể dùng đoạn mã sau:

consumerController.disableAutoCamera(true);

Khi 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 cho 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()