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ı olduğunda sırayla yürütür. İhtiyaç duyduğunuzda yeni API istemcileri oluşturabilirsiniz. Bu istemcilerin oluşturulması ucuzdur.
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 hizmetin istemci nesnesinin bir örneğini oluşturun ve Context
veya Activity
nesnesini iletin. Gerekirse kullanıcılar, herhangi bir API çağrısı yürütülmeden önce Google Play Hizmetleri'ni yükseltmeye yönlendirilir.
Aşağıdaki kod snippet'inde, Fused Location Provider'ı kullanarak 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 kullanılabilirliğini kontrol etme
Google Play Hizmetleri API'sine bağlı bir özelliği etkinleştirmeden önce checkApiAvailability()
çağrısı yaparak API'nin cihazda kullanılabilir olup olmadığı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.")); }