Google API'lerine erişme

Android uygulamanızda Google Play Hizmetleri tarafından desteklenen API'lere erişmek için API istemci nesnelerini kullanmanız gerekir. Bu nesneler, Google Play Hizmetleri'ne bağlantıyı yönetir, istekleri sıraya alır ve bağlantı mevcut olduğunda sırayla yürütür. Oluşturma maliyetleri düşük olduğundan gerektiğinde yeni API istemcileri oluşturabilirsiniz.

Başlayın

Başlamadan önce uygulama projenizde Google Play Hizmetleri'ni ayarladığınızdan emin olun.

Yetkilendirme gerektirmeyen bir hizmete erişmek için Context veya Activity nesnesi ile hizmetin istemci nesnesi örneği oluşturun. Gerekirse, API çağrıları yapılmadan önce kullanıcılardan Google Play Hizmetleri'ni yükseltmeleri istenir.

Aşağıdaki kod snippet'inde, Birleştirilmiş Konum Sağlayıcı kullanılarak cihazın bilinen son konumunun nasıl alınacağı gösterilmektedir:

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.
            }
        });

Kullanıcı yetkilendirmesi gerektiren API'lere erişmek için Google kullanıcı verilerine erişim yetkilendirme kılavuzunu uygulayın. GoogleSignInAccount nesnesi gerektiren bir API kullanıyorsanız AuthorizationResult#toGoogleSignInAccount() yöntemini kullanın.

API'nin kullanılabilir olup olmadığını kontrol etme

Google Play Hizmetleri API'sine bağlı bir özelliği etkinleştirmeden önce checkApiAvailability() çağrısını yaparak API'nin cihazda kullanılıp kullanılamadığını kontrol edin.

Aşağıdaki kod snippet'inde, birleştirilmiş konum sağlayıcının kullanılabilir olup olmadığının nasıl kontrol edileceği gösterilmektedir:

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."));
}