دسترسی به Google APIs

برای دسترسی به میاناهای برنامه‌سازی کاربردی با پشتیبانی خدمات Google Play در برنامه Android، باید از اشیای کارخواه میانای برنامه‌سازی کاربردی استفاده کنید. این اشیاء اتصال به خدمات Google Play را مدیریت می‌کنند، درخواست‌ها را در صف قرار می‌دهند و آن‌ها را به‌ترتیب زمانی که اتصال دردسترس است اجرا می‌کنند. درصورت نیاز می‌توانید کارخواه‌های API جدید ایجاد کنید، چون ساختن آن‌ها هزینه زیادی ندارد.

شروع کنید

قبل‌از شروع، حتماً خدمات Google Play را در پروژه برنامه‌تان راه‌اندازی کنید.

برای دسترسی به سرویسی که به مجوز نیاز ندارد، نمونه‌ای از شیء مشتری سرویس را ایجاد کنید و Context یا شیء Activity را ارسال کنید. درصورت لزوم، قبل‌از اجرای هرگونه تماس با «میانای برنامه‌سازی کاربردی»، از کاربران خواسته می‌شود «خدمات Google Play» را ارتقا دهند.

تکه‌کد زیر نشان می‌دهد که چگونه می‌توان آخرین مکان شناخته‌شده دستگاه را بااستفاده از «ارائه‌دهنده تلفیقی مکان» دریافت کرد:

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

جاوا

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

برای دسترسی به میاناهای برنامه‌سازی کاربردی که به مجوز کاربر نیاز دارند، راهنمای مجاز کردن دسترسی به داده‌های کاربر Google را دنبال کنید. اگر از میانای برنامه‌سازی کاربردی‌ای استفاده می‌کنید که به شیء GoogleSignInAccount نیاز دارد، از روش AuthorizationResult#toGoogleSignInAccount() استفاده کنید.

بررسی دردسترس بودن میانای برنامه‌سازی کاربردی

قبل‌از فعال کردن ویژگی‌ای که به میانای برنامه‌سازی کاربردی «خدمات Google Play» وابسته است، با فراخوانی checkApiAvailability() بررسی کنید که آیا میانای برنامه‌سازی کاربردی در دستگاه دردسترس است یا نه.

تکه‌کد زیر نحوه بررسی دردسترس بودن ارائه‌دهنده تلفیقی مکان را نشان می‌دهد:

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

جاوا

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