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 ile bağlantıyı yönetir, istekleri sıraya koyar ve bağlantı olduğunda sırayla yürütür. Oluşturulması kolay olduğu için gerektiğinde yeni API istemcileri oluşturabilirsiniz.
Başlayın
Başlamadan önce uygulama projenizde Google Play Hizmetleri'ni kurduğunuzdan emin olun.
Yetkilendirme gerektirmeyen bir hizmete erişmek için hizmetin istemci nesnesinin bir örneğini oluşturun ve bir Context veya Activity nesnesi iletin. Gerekirse kullanıcılardan, API çağrıları yürütülmeden önce Google Play Hizmetleri'ni yükseltmeleri istenir.
Aşağıdaki kod snippet'inde, çok kaynaklı 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şimi yetkilendirme kılavuzunu inceleyin.
GoogleSignInAccount nesnesi gerektiren bir API kullanıyorsanız AuthorizationResult#toGoogleSignInAccount() yöntemini kullanın.
API'nin kullanılabilirliğini kontrol etme
Google Play Hizmetleri API'sine bağlı bir özelliği etkinleştirmeden önce checkApiAvailability() yöntemini çağırarak API'nin cihazda kullanılabilir olup olmadığını kontrol edin.
Aşağıdaki kod snippet'i, birleştirilmiş konum sağlayıcının kullanılabilir olup olmadığını nasıl kontrol edeceğinizi gösterir:
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.")); }