La versión 3.4.0 del SDK de Places para Android admite dos versiones del SDK: SDK de Places para Android es el SDK existente y SDK de Places para Android (nuevo) es la versión de nueva generación del SDK.
Con el lanzamiento del SDK de Places para Android versión 3.4.0, tu primera tarea es decidir qué SDK usar. Esto es así si eres un cliente nuevo o un cliente existente que ya usa el SDK. Usa esta guía para comprender las diferencias clave entre los dos SDKs.
Cómo seleccionar tu versión del SDK
En el backend, el SDK de Places para Android se basa en el servicio de la API de Places, ya sea la API de Places (versión nueva) o la API de Places. Antes de poder usar el SDK de Places para Android, debes habilitar el servicio de la API de Places en tu proyecto de Google Cloud.
En Android, existen dos acciones que debes realizar para determinar qué APIs puedes usar en tu app:
En tu proyecto, debes habilitar la API de Places (versión nueva), la API de Places o ambas en tu clave de API, según lo que desees usar en tu app.
Inicializa tu app llamando a los métodos
Places.initializeWithNewPlacesApiEnabled()
oPlaces.initialize()
.
Selecciona tu SDK
La versión del servicio de la API de Places que habilitas controla la versión del SDK que usa tu app:
Ambos: Habilita todas las funciones para el SDK de Places para Android y el SDK de Places para Android (nuevo). Usa los métodos
Places.initializeWithNewPlacesApiEnabled()
yPlaces.initialize()
para controlar las funciones disponibles.API de Places: Habilita el SDK de Places para Android existente. No tienes acceso a las funciones nuevas que se agregaron en la versión 3.4.0 del SDK de Places para Android.
API de Places (versión nueva): Habilita el SDK de Places para Android (versión nueva) y todas las funciones nuevas que se describen en Funciones clave agregadas al SDK de Places para Android (versión nueva), pero no habilita las funciones existentes, como Current Place y Place Autocomplete.
Para obtener más información sobre cómo seleccionar el servicio de la API de Places, consulta Configura tu proyecto de Google Cloud.
Inicializa tu app
Cuando inicializas tu app, debes llamar a los métodos Places.initializeWithNewPlacesApiEnabled()
o Places.initialize()
.
En la siguiente tabla, se muestran los efectos de habilitar cada SDK y llamar a cada método de inicialización. Por ejemplo, si habilitas el SDK de Places (nuevo) y llamas a Places.initializeWithNewPlacesApiEnabled()
, puedes usar todas las APIs nuevas y todas las existentes.
Si habilitas el SDK de Places (nuevo) y llamas a Places.initialize()
, no puedes usar las funciones nuevas de Place Details y Place Photos, pero puedes llamar a la nueva Text Search. Si no habilitas la API de Places, no podrás acceder a la versión anterior de Place Details, pero podrás llamar a la nueva Text Search.
Versión | APIs | SDK habilitado en la clave de API | Método de inicialización | ||
---|---|---|---|---|---|
API de Places | API de Places (nuevo) | initialize() |
initializeWithNewPlacesApiEnabled() |
||
v3.3.0 | Places Details | ||||
Place Details (nuevo) | |||||
Metadatos de fotos (nuevo) | |||||
Text Search (nueva) | Cualquiera de los métodos | ||||
v3.4.0 | URI de foto (nuevo) | ||||
Mapa de bits de fotos | Cualquiera de los métodos | ||||
CurrentPlace | Cualquiera de los métodos | ||||
Autocompletar | Cualquiera de los métodos |
¿Qué SDK eliges?
Para ayudarte a decidir qué versión elegir, haz lo siguiente:
Si eres un cliente nuevo que recién comienzas a usar el SDK de Places para Android, comienza con la API de Places (versión nueva) y el SDK nuevo.
Si eres desarrollador de Kotlin, puedes usar cualquiera de los SDK, pero las funciones nuevas del SDK de Places para Android (nuevo) solo están disponibles en Java en la versión 3.4.0.
Si eres un cliente existente y usas tokens de sesión, sigue usando el SDK existente. Por el momento, el SDK de Places para Android (nuevo) no admite tokens de sesión.
Si eres un cliente existente, puedes seguir usando el SDK existente. Sin embargo, para aprovechar las mejoras de rendimiento y las mejoras de funciones del SDK de Places para Android (versión nueva), puedes usar el SDK nuevo.
No es necesario realizar una migración cuando se pasa al SDK nuevo. Solo tienes que hacer lo siguiente:
- Habilita la API de Places (versión nueva) en la clave de API que se usa en tu app. Para obtener más información, consulta Cómo usar claves de API.
En la sección
dependencies
de tu archivobuild.gradle
a nivel del módulo, actualiza la dependenciaplaces
y agrega la dependenciakotlin-bom
:dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) implementation 'com.google.android.libraries.places:places:3.3.0' }
Para obtener más información sobre la dependencia
kotlin-bom
, consulta Uso de la versión más reciente de kotlin-stdlib en dependencias transitivas.- Actualiza tu app existente para llamar al nuevo método
Places.initializeWithNewPlacesApiEnabled()
e inicializar la app. Para obtener más información, consulta Cómo inicializar el cliente de la API de Places.
Tus apps existentes continúan funcionando sin cambios, pero ahora puedes aprovechar todas las funciones nuevas del SDK.
Se agregaron funciones clave al SDK de Places para Android (nuevo)
En esta sección, se describen las funciones clave que se agregaron al SDK de Places para Android (versión nueva).
Implementado en la plataforma estándar de Google Cloud
El SDK de Places para Android (nuevo) se implementa en la infraestructura de servicio de Google Cloud. Esta implementación aporta una plataforma más segura y confiable. Este diseño estándar aporta un nivel de coherencia en los SDKs que mejoran la eficiencia del desarrollo con el SDK de Places para Android (nuevo).
tiene un rendimiento mejorado.
El SDK de Places para Android (versión nueva) proporciona un rendimiento mejorado, por lo que vale la pena reemplazar las apps que usan el SDK existente.
Nuevo servicio de Text Search
Text Search muestra información sobre un conjunto de lugares en función de una cadena; por ejemplo, "pizza en Buenos Aires", "tiendas de zapatos cerca de Santiago" o "Calle principal 123". El servicio responde con una lista de lugares que coinciden con la cadena de texto y con cualquier personalización de ubicación que se haya establecido.
Se agregaron nuevos datos de respuesta a Placed Details y Place Photos
Place Details ahora incluye la nueva clase Review en el objeto
Place
de respuesta. La clase Place contiene el nuevo métodogetReviews()
para admitir este campo. Llama agetReviews()
para mostrar hasta cinco opiniones de un lugar.Place Photo agrega el objeto
AuthorAttributions
a la clasePhotoMetadata
.AuthorAttributions
contiene unaList
de objetosAuthorAttribution
.
Se agregó una nueva respuesta de URI a Place Photos
Ahora puedes usar Place Photos para mostrar un URI a un mapa de bits de imagen. Anteriormente, solo podías mostrar el mapa de bits de la imagen.
Precios simplificados
Con el SDK de Places para Android (versión nueva), los precios se simplifican a fin de que solo pagues por los datos que usas. Los precios simplificados se implementan mediante listas de campos, también llamadas máscaras de campo.
Con Place Details y Text Search, usas listas de campos para controlar la lista de campos que se debe mostrar en la respuesta. Entonces, solo se te facturará por los datos solicitados. Usar una lista de campos es una práctica de diseño recomendada para garantizar que no solicites datos innecesarios, lo que ayuda a evitar tiempos de procesamiento y cargos de facturación innecesarios.
Para obtener información detallada sobre los precios de ambos SDKs, consulta Uso y facturación.
Tipos de lugares expandidos
El nuevo SDK agrega los tipos de sitios que se muestran en la siguiente tabla. Estos tipos se muestran como parte de las respuestas de Place Details y Text Search. También puedes usar estos tipos nuevos y los existentes en una búsqueda con Text Search. Los tipos nuevos se incluyen en la Tabla A.
Tipo | |||
---|---|---|---|
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 | .farm | korean_restaurant | sporting_goods_store |
barber_shop | hacienda | lebanese_restaurant | sports_club |
bed_and_breakfast | fast_food_restaurant | puerto deportivo | sports_complex |
brazilian_restaurant | ferry_terminal | mercado | steak_house |
breakfast_restaurant | fitness_center | medical_lab | sushi_restaurant |
brunch_restaurant | french_restaurant | mediterranean_restaurant | swimming_pool |
bus_stop | gift_shop | mexican_restaurant | sastre |
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 |
consultor | helipuerto | playground | vegetarian_restaurant |
convention_center | hiking_area | preescolar | vietnamese_restaurant |
cabaña | historical_landmark | private_guest_room | visitor_center |
courier_service | home_improvement_store | ramen_restaurant | wedding_venue |
cultural_center | hostal | resort_hotel | mayorista |
dental_clinic | hotel | rest_stop |
country
administrative_area_level_1
administrative_area_level_2
postal_code
locality