تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
للوصول إلى
واجهات برمجة التطبيقات التي توفّرها "خدمات Google Play"
في تطبيق Android، عليك استخدام عناصر عميل واجهة برمجة التطبيقات. تتعامل هذه العناصر مع عملية الربط بخدمات Google Play، وتضع الطلبات في قائمة الانتظار وتنفّذها بالترتيب عند توفّر اتصال. يمكنك إنشاء عملاء جدد لواجهة برمجة التطبيقات حسب الحاجة، لأنّ إنشاءهم غير مكلف.
للوصول إلى خدمة لا تتطلّب تفويضًا، أنشئ مثيلاً لكائن العميل الخاص بالخدمة، مع تمرير إما Context أو كائن Activity. إذا لزم الأمر، يُطلب من المستخدمين ترقية "خدمات Google Play" قبل تنفيذ أي طلبات من واجهة برمجة التطبيقات.
يوضّح مقتطف الرمز التالي كيفية الحصول على آخر موقع جغرافي معروف للجهاز
باستخدام Fused Location Provider:
Kotlin
// Code required for requesting location permissions omitted for brevity.valclient=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.FusedLocationProviderClientclient=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 Play"، تحقَّق مما إذا كانت واجهة برمجة التطبيقات متوفّرة على الجهاز من خلال طلب checkApiAvailability().
يوضِّح مقتطف الرمز البرمجي التالي كيفية التحقّق من توفُّر "موفِّر الموقع الجغرافي المدمج":
تاريخ التعديل الأخير: 2025-08-17 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-17 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eTo use Google Play services APIs, create API client objects which manage the connection and queue requests when offline.\u003c/p\u003e\n"],["\u003cp\u003eAccess services without authorization by obtaining the client object using the current \u003ccode\u003eContext\u003c/code\u003e or \u003ccode\u003eActivity\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eAccess services requiring authorization by signing in the user, requesting necessary permissions, and then getting the client object.\u003c/p\u003e\n"],["\u003cp\u003eCheck for API availability using \u003ccode\u003echeckApiAvailability()\u003c/code\u003e if you need to disable features when an API is unavailable, although API calls will fail gracefully if the API isn't present.\u003c/p\u003e\n"]]],["To use Google Play services APIs, create an API client object, which manages the connection and queues requests. For services not requiring authorization, obtain the client instance using `Context` or `Activity`; for example, the Fused Location Provider client. For services requiring authorization, sign the user in, request necessary permissions, and then get the client using `GoogleSignInAccount`. For example, the Fit API client to get the daily steps. Before making API calls check with `checkApiAvailability()`.\n"],null,["# Access Google APIs\n\n\u003cbr /\u003e\n\nTo access\n[APIs powered by Google Play services](/android/guides/setup#list-dependencies)\nin your Android app, you need to use API client objects. These objects handle\nthe connection to Google Play services, queueing requests and executing them in\norder when a connection is available. You can create new API clients as needed,\nas they are inexpensive to construct.\n\nGet started\n-----------\n\nBefore you begin, make sure to\n[set up Google Play services](/android/guides/setup) in your app project.\n| **Warning:** APIs using [`GoogleApiClient`](/android/reference/com/google/android/gms/common/api/GoogleApiClient) are deprecated. If you are still using `GoogleApiClient`, migrate to the corresponding `GoogleApi`-based APIs by updating to the latest available SDK versions.\n\nTo access a service that doesn't require authorization, create an instance of\nthe service's client object, passing either a\n[`Context`](https://developer.android.com/reference/android/content/Context) or\nan [`Activity`](https://developer.android.com/reference/android/app/Activity)\nobject. If necessary, users are prompted to upgrade Google Play services before\nany API calls are executed.\n\nThe following code snippet shows how to get the device's last known location\nusing the Fused Location Provider: \n\n### Kotlin\n\n```kotlin\n// Code required for https://developer.android.com/training/location/permissions omitted for brevity.\nval client = LocationServices.getFusedLocationProviderClient(this)\n\n// Get the last known location. In some rare situations, this can be null.\nclient.lastLocation.addOnSuccessListener { location : Location? -\u003e\n location?.let {\n // Logic to handle location object.\n }\n}\n```\n\n### Java\n\n```java\n// Code required for https://developer.android.com/training/location/permissions omitted for brevity.\nFusedLocationProviderClient client =\n LocationServices.getFusedLocationProviderClient(this);\n\n// Get the last known location. In some rare situations, this can be null.\nclient.getLastLocation()\n .addOnSuccessListener(this, location -\u003e {\n if (location != null) {\n // Logic to handle location object.\n }\n });\n```\n\nTo access APIs that require user authorization, follow the guide to\n[authorize access to Google user data](https://developer.android.com/identity/authorization).\nIf you are using an API that requires a `GoogleSignInAccount` object, use the\n[`AuthorizationResult#toGoogleSignInAccount()`](/android/reference/com/google/android/gms/auth/api/identity/AuthorizationResult#toGoogleSignInAccount())\nmethod.\n\nCheck for API availability\n--------------------------\n\nBefore enabling a feature that depends on a Google Play services API, check if\nthe API is available on the device by calling\n[`checkApiAvailability()`](/android/reference/com/google/android/gms/common/GoogleApiAvailability#checkApiAvailability(com.google.android.gms.common.api.HasApiKey%3C?%3E,%20com.google.android.gms.common.api.HasApiKey%3C?%3E...)).\n| **Note:** This check is only needed if you need to disable a feature when an API is unavailable. You can also call API methods without this check, as they will fail if the API is unavailable.\n\nThe following code snippet shows how to check if the fused location provider is\navailable: \n\n### Kotlin\n\n```kotlin\nfun getLastLocationIfApiAvailable(context: Context?): Task\u003cLocation\u003e? {\n val client = getFusedLocationProviderClient(context)\n return GoogleApiAvailability.getInstance()\n .checkApiAvailability(client)\n .onSuccessTask { _ -\u003e client.lastLocation }\n .addOnFailureListener { _ -\u003e Log.d(TAG, \"Location unavailable.\")}\n}\n```\n\n### Java\n\n```java\npublic Task\u003cLocation\u003e getLastLocationIfApiAvailable(Context context) {\n FusedLocationProviderClient client =\n getFusedLocationProviderClient(context);\n return GoogleApiAvailability.getInstance()\n .checkApiAvailability(client)\n .onSuccessTask(unused -\u003e client.getLastLocation())\n .addOnFailureListener(e -\u003e Log.d(TAG, \"Location unavailable.\"));\n}\n```"]]