Trước khi bắt đầu các quy trình này, hãy đảm bảo bạn đã bật các dịch vụ thích hợp và Consumer SDK như mô tả trong các phần trước.
Để khởi chạy Consumer SDK, hãy làm theo các bước sau:
Lấy thực thể ConsumerApi
Để sử dụng Consumer SDK, ứng dụng của bạn cần khởi chạy ConsumerApi singleton một cách không đồng bộ. Phương thức khởi chạy sẽ lấy lớp AuthTokenFactory để tạo mã thông báo JWT mới cho người dùng khi cần.
providerId là Mã dự án của Dự án Google Cloud. Để biết thêm
thông tin về cách tạo dự án Fleet Engine, hãy xem
bài viết Tạo dự án Fleet Engine trong hướng dẫn về Fleet Engine.
Ứng dụng của bạn phải triển khai AuthTokenFactory như mô tả trong Consumer SDK
Authentication.
Java
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 và trình kết xuất bản đồ
Consumer SDK phiên bản 2.0.0 trở lên hỗ trợ Maps SDK cho Android phiên bản 18.1.0 trở lên. Bảng sau đây tóm tắt trình kết xuất mặc định theo phiên bản Maps SDK và khả năng hỗ trợ của cả hai trình kết xuất. Nếu có thể, hãy sử dụng trình kết xuất mới nhất.
Nếu bạn phải sử dụng trình kết xuất cũ, hãy chỉ định rõ ràng bằng cách sử dụng
MapsInitializer.initialize().
| Phiên bản Maps SDK | Hỗ trợ trình kết xuất mới nhất | Hỗ trợ trình kết xuất cũ | Trình kết xuất mặc định |
|---|---|---|---|
| Phiên bản 18.1.0 trở xuống | Có | Có | Cũ* |
| V18.2.0 | Có | Có | Mới nhất |
* Khi triển khai Trình kết xuất bản đồ mới, trình kết xuất Mới nhất sẽ là trình kết xuất mặc định.
Nếu bạn phải sử dụng trình kết xuất ưu tiên, hãy chạy tất cả các thao tác kết xuất giao diện người dùng sau khi OnMapsSdkInitializedCallback trả về kết quả. Các thao tác kết xuất giao diện người dùng bao gồm các thao tác sau:
Tăng cường khung hiển thị chứa
GoogleMapViewhoặcConsumerMapView.Đặt điểm đánh dấu trên
ConsumerMapView.
Nếu bạn không chạy các thao tác này sau khi nhận được kết quả OnMapsSdkInitializedCallback, thì Maps SDK sẽ không phân bổ trình kết xuất ưu tiên và khung hiển thị bản đồ sẽ được kết xuất bằng trình kết xuất mặc định.
Khởi chạy Maps SDK trước khi khởi chạy Consumer SDK
Trong lớp
Applicationhoặc lớpActivitykhởi động, hãy gọi MapsInitializer.initialize()Đợi kết quả yêu cầu trình kết xuất trước khi khởi chạy Consumer SDK.
Hãy xem các ví dụ sau để biết thông tin chi tiết.
Java
@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()
}
})
}
Lưu ý về SSL/TLS
Về nội bộ, quá trình triển khai Consumer SDK sử dụng SSL/TLS để giao tiếp an toàn với dịch vụ Fleet Engine. Các phiên bản Android API 23 trở xuống có thể yêu cầu bản vá SecurityProvider để giao tiếp với máy chủ. Để biết thêm thông tin
về cách làm việc với SSL trong Android, hãy xem bài viết Nhà cung cấp GMS
bảo mật.
Bài viết này cũng chứa các mẫu mã để vá nhà cung cấp bảo mật.