Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Per accedere alle API basate su Google Play Services nella tua app per Android, devi utilizzare gli oggetti client API. Questi oggetti gestiscono la connessione a Google Play Services, la messa in coda delle richieste e la loro esecuzione in ordine quando è disponibile una connessione. Puoi creare nuovi client API in base alle tue esigenze, in quanto sono economici da creare.
Per accedere a un servizio che non richiede l'autorizzazione, crea un'istanza dell'oggetto client del servizio, passando un oggetto Context o Activity. Se necessario, agli utenti viene chiesto di eseguire l'upgrade di Google Play Services prima dell'esecuzione di qualsiasi chiamata API.
Il seguente snippet di codice mostra come ottenere l'ultima posizione nota del dispositivo utilizzando il fornitore di geolocalizzazione combinata:
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.}});
Prima di attivare una funzionalità che dipende da un'API Google Play Services, controlla se l'API è disponibile sul dispositivo chiamando checkApiAvailability().
Il seguente snippet di codice mostra come verificare se il fornitore di servizi di geolocalizzazione combinati è disponibile:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-17 UTC."],[[["\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,["To 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\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\nKotlin \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\nJava \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\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\nKotlin \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\nJava \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```"]]