Truy cập API của Google

Để truy cập vào các API do Dịch vụ Google Play cung cấp trong ứng dụng Android, bạn cần sử dụng các đối tượng ứng dụng API. Các đối tượng này xử lý việc kết nối với Dịch vụ Google Play, đưa các yêu cầu vào hàng đợi và thực thi các yêu cầu đó theo thứ tự khi có kết nối. Bạn có thể tạo ứng dụng API mới nếu cần, vì việc tạo các ứng dụng này không tốn kém.

Bắt đầu

Trước khi bắt đầu, hãy nhớ thiết lập Dịch vụ Google Play trong dự án ứng dụng.

Để truy cập vào một dịch vụ không yêu cầu uỷ quyền, hãy tạo một thực thể của đối tượng ứng dụng của dịch vụ, truyền đối tượng Context hoặc Activity. Nếu cần, người dùng sẽ được nhắc nâng cấp Dịch vụ Google Play trước khi thực thi bất kỳ lệnh gọi API nào.

Đoạn mã sau đây cho biết cách lấy thông tin vị trí đã biết gần đây nhất của thiết bị bằng Trình cung cấp vị trí kết hợp:

Kotlin

// Code required for requesting location permissions omitted for brevity.
val client = LocationServices.getFusedLocationProviderClient(this)

// Get the last known location. In some rare situations, this can be null.
client.lastLocation.addOnSuccessListener { location : Location? ->
    location?.let {
        // Logic to handle location object.
    }
}

Java

// Code required for requesting location permissions omitted for brevity.
FusedLocationProviderClient client =
        LocationServices.getFusedLocationProviderClient(this);

// Get the last known location. In some rare situations, this can be null.
client.getLastLocation()
        .addOnSuccessListener(this, location -> {
            if (location != null) {
                // Logic to handle location object.
            }
        });

Để truy cập vào các API yêu cầu người dùng uỷ quyền, hãy làm theo hướng dẫn để uỷ quyền truy cập vào dữ liệu người dùng trên Google. Nếu bạn đang sử dụng một API yêu cầu đối tượng GoogleSignInAccount, hãy sử dụng phương thức AuthorizationResult#toGoogleSignInAccount().

Kiểm tra xem API có hoạt động hay không

Trước khi bật một tính năng phụ thuộc vào API Dịch vụ Google Play, hãy kiểm tra xem API có trên thiết bị hay không bằng cách gọi checkApiAvailability().

Đoạn mã sau đây cho biết cách kiểm tra xem có nhà cung cấp vị trí kết hợp hay không:

Kotlin

fun getLastLocationIfApiAvailable(context: Context?): Task<Location>? {
    val client = getFusedLocationProviderClient(context)
    return GoogleApiAvailability.getInstance()
        .checkApiAvailability(client)
        .onSuccessTask { _ -> client.lastLocation }
        .addOnFailureListener { _ -> Log.d(TAG, "Location unavailable.")}
}

Java

public Task<Location> getLastLocationIfApiAvailable(Context context) {
    FusedLocationProviderClient client =
            getFusedLocationProviderClient(context);
    return GoogleApiAvailability.getInstance()
            .checkApiAvailability(client)
            .onSuccessTask(unused -> client.getLastLocation())
            .addOnFailureListener(e -> Log.d(TAG, "Location unavailable."));
}