دسترسی به 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 services API وابسته است، با فراخوانی 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."));
}