Choisir la version de votre SDK

Le SDK Places pour Android version 3.4.0 est compatible avec deux versions de SDK : le SDK Places pour Android est le SDK existant et le SDK Places pour Android (nouveau) est la version nouvelle génération du SDK.

Avec la sortie du SDK Places pour Android version 3.4.0, votre première tâche consiste à choisir le SDK à utiliser. Cela est vrai si vous êtes un nouveau client ou un client existant qui utilise déjà le SDK. Consultez ce guide pour comprendre les principales différences entre les deux SDK.

Sélectionner la version de votre SDK

Sur le backend, le SDK Places pour Android s'appuie sur le service de l'API Places : l'API Places (nouvelle version) ou l'API Places. Avant de pouvoir utiliser le SDK Places pour Android, vous devez activer le service de l'API Places dans votre projet Google Cloud.

Pour Android, vous devez effectuer deux actions pour déterminer les API que vous pouvez utiliser dans votre application:

  1. Dans votre projet, vous devez activer l'API Places (nouvelle version), l'API Places ou les deux sur votre clé API, selon ce que vous prévoyez d'utiliser dans votre application.

  2. Initialisez votre application en appelant la méthode Places.initializeWithNewPlacesApiEnabled() ou Places.initialize().

Sélectionner votre SDK

La version du service de l'API Places que vous activez contrôle la version du SDK utilisée par votre application:

  • Les deux: active toutes les fonctionnalités du SDK Places pour Android et du SDK Places pour Android (nouveau). Utilisez les méthodes Places.initializeWithNewPlacesApiEnabled() et Places.initialize() pour contrôler les fonctionnalités disponibles.

  • API Places: active le SDK Places pour Android existant. Vous n'avez pas accès aux nouvelles fonctionnalités ajoutées dans le SDK Places pour Android version 3.4.0.

  • API Places (nouvelle version): active le SDK Places pour Android (nouveau) et toutes les nouvelles fonctionnalités décrites dans Principales fonctionnalités ajoutées au SDK Places pour Android (nouveau), mais n'active pas les fonctionnalités existantes telles que Current Place et Place Autocomplete.

Pour en savoir plus sur la sélection du service de l'API Places, consultez Configurer votre projet Google Cloud.

Initialiser votre application

Lorsque vous initialisez votre application, vous devez appeler la méthode Places.initializeWithNewPlacesApiEnabled() ou Places.initialize().

Le tableau suivant montre les effets de l'activation de chaque SDK et de l'appel de chaque méthode d'initialisation. Par exemple, si vous activez le SDK Places (nouvelle version) et appelez Places.initializeWithNewPlacesApiEnabled(), vous pouvez utiliser toutes les nouvelles API et toutes les API existantes.

Si vous activez le SDK Places (New) et appelez Places.initialize(), vous ne pouvez pas utiliser les nouvelles fonctionnalités de Place Details et Place Photos, mais vous pouvez appeler le nouveau Text Search. Si vous n'activez pas l'API Places, vous ne pouvez pas accéder à l'ancienne version de Place Details, mais vous pouvez toujours appeler la nouvelle fonctionnalité Text Search.

Version API SDK activé sur une clé API Méthode d'initialisation
API Places API Places (nouvelle version) initialize() initializeWithNewPlacesApiEnabled()
v3.3.0 Places Details
Places Details (nouveau)
Métadonnées de photos (nouvelles)
Text Search (nouvelle version) L'une ou l'autre méthode
v3.4.0 URI photo (nouveau)
Bitmap de la photo L'une ou l'autre méthode
CurrentPlace L'une ou l'autre méthode
Saisie semi-automatique L'une ou l'autre méthode

Quel SDK choisissez-vous ?

Pour vous aider à choisir quelle version choisir:

  1. Si vous êtes un nouveau client et que vous faites vos premiers pas avec le SDK Places pour Android, commencez par l'API Places (nouvelle version) et le nouveau SDK.

  2. Si vous êtes un développeur Kotlin, vous pouvez utiliser l'un ou l'autre des SDK, mais les nouvelles fonctionnalités du SDK Places pour Android (nouveau) ne sont disponibles qu'en Java dans la version 3.4.0.

  3. Si vous êtes un client existant et que vous utilisez des jetons de session, continuez à vous servir du SDK existant. Le SDK Places pour Android (nouveau) n'est actuellement pas compatible avec les jetons de session.

  4. Si vous êtes un client existant, vous pouvez continuer à utiliser le SDK existant. Toutefois, pour profiter des améliorations des performances et des fonctionnalités du SDK Places pour Android (nouveau), vous pouvez utiliser le nouveau SDK.

    Aucune migration n'est nécessaire lorsque vous passez au nouveau SDK. Il vous suffit de procéder comme suit:

    1. Activez l'API Places (nouvelle version) sur la clé API utilisée dans votre application. Pour en savoir plus, consultez Utiliser des clés API.
    2. Dans la section dependencies de votre fichier build.gradle au niveau du module, mettez à jour la dépendance places et ajoutez la dépendance kotlin-bom:

        dependencies {
            implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
            implementation 'com.google.android.libraries.places:places:3.3.0'
        }

      Pour en savoir plus sur la dépendance kotlin-bom, consultez la section Utilisation de la dernière version de kotlin-stdlib dans les dépendances transitives.

    3. Mettez à jour votre application existante pour appeler la nouvelle méthode Places.initializeWithNewPlacesApiEnabled() afin d'initialiser votre application. Pour en savoir plus, consultez Initialiser le client API Places.

    Vos applications existantes continuent de fonctionner inchangées, mais vous pouvez désormais profiter de toutes les nouvelles fonctionnalités du SDK.

Principales fonctionnalités ajoutées au SDK Places pour Android (nouveau)

Cette section présente les principales fonctionnalités ajoutées au SDK Places pour Android (nouveau).

Mise en œuvre sur la plate-forme standard Google Cloud

Le SDK Places pour Android (nouveau) est implémenté sur l'infrastructure de service de Google Cloud. Cette implémentation apporte une plate-forme plus sécurisée et plus fiable. Cette conception standard apporte un niveau de cohérence entre les SDK qui améliorent l'efficacité du développement avec le SDK Places pour Android (nouveau).

Performances améliorées

Le SDK Places pour Android (nouveau) offre de meilleures performances. Il est donc intéressant de remplacer les applications qui utilisent le SDK existant.

Nouveau service Text Search

Text Search renvoie des informations sur un ensemble de lieux en fonction d'une chaîne (par exemple, "pizza à New York", "magasins de chaussures près d'Ottawa" ou "123 Main Street"). Le service répond avec une liste des lieux correspondant à la chaîne de texte et aux limitations de zone géographique définis.

Nouvelles données de réponse ajoutées à Placed Details et Place Photos

  • Place Details inclut désormais la nouvelle classe Review dans l'objet Place de la réponse. La classe Place contient la nouvelle méthode getReviews() compatible avec ce champ. Appelez getReviews() pour afficher jusqu'à cinq avis sur un lieu.

  • Place Photo ajoute le AuthorAttributions à la classe PhotoMetadata. AuthorAttributions contient un List d'objets AuthorAttribution.

Nouvelle réponse d'URI ajoutée à Place Photos

Vous pouvez maintenant utiliser Place Photos pour renvoyer un URI à un bitmap d'image. Auparavant, vous ne pouviez renvoyer que le bitmap de l'image lui-même.

Tarification simplifiée

La tarification est simplifiée avec le SDK Places pour Android (nouveau) afin que vous ne payiez que pour les données que vous utilisez. La tarification simplifiée est mise en œuvre à l'aide de listes de champs, également appelées masques de champ.

Avec Place Details et Text Search, vous utilisez des listes de champs pour contrôler la liste des champs à renvoyer dans la réponse. Vous n'êtes ensuite facturé que pour les données demandées. L'utilisation d'une liste de champs est une bonne pratique à appliquer pour vous assurer de ne pas demander de données inutiles. Vous éviterez ainsi un temps de traitement et des frais de facturation inutiles.

Pour obtenir des informations détaillées sur la tarification des deux SDK, consultez Utilisation et facturation.

Types de lieux développés

Le nouveau SDK ajoute les types de lieux indiqués dans le tableau suivant. Ces types sont renvoyés dans la réponse Place Details et Text Search. Vous pouvez également utiliser ces nouveaux types et les types existants dans une recherche avec Text Search. Les nouveaux types sont inclus dans le tableau A.

Type
american_restaurant discount_store ice_cream_shop sandwich_shop
amusement_center dog_park indian_restaurant school_district
athletic_field electric_vehicle_charging_station indonesian_restaurant seafood_restaurant
auto_parts_store event_venue italian_restaurant ski_resort
banquet_hall extended_stay_hotel japanese_restaurant spanish_restaurant
barbecue_restaurant ferme korean_restaurant sporting_goods_store
barber_shop ferme lebanese_restaurant sports_club
bed_and_breakfast fast_food_restaurant Marina sports_complex
brazilian_restaurant ferry_terminal marché steak_house
breakfast_restaurant fitness_center medical_lab sushi_restaurant
brunch_restaurant french_restaurant mediterranean_restaurant swimming_pool
bus_stop gift_shop mexican_restaurant tailleur
camping_cabin golf_course middle_eastern_restaurant telecommunications_service_provider
cell_phone_store greek_restaurant motel thai_restaurant
child_care_agency grocery_store national_park transit_depot
chinese_restaurant guest_house park_and_ride truck_stop
coffee_shop hair_salon performing_arts_theater turkish_restaurant
community_center hamburger_restaurant pizza_restaurant vegan_restaurant
consultant héliport playground vegetarian_restaurant
convention_center hiking_area centre préscolaire vietnamese_restaurant
cottage historical_landmark private_guest_room visitor_center
courier_service home_improvement_store ramen_restaurant wedding_venue
cultural_center auberge de jeunesse resort_hotel grossiste
dental_clinic hotel rest_stop
Parallèlement à ces nouveaux types, l'API Places (New) a déplacé les types suivants de la table B vers le tableau A. Cela signifie que vous pouvez désormais utiliser les types suivants dans une recherche :
  • country
  • administrative_area_level_1
  • administrative_area_level_2
  • postal_code
  • locality