Os recursos do SDK do Places para Android disponíveis no seu app são determinados por uma combinação do número da versão do SDK (por exemplo, 3.5.0) especificado na configuração do app, das APIs ativadas na chave de API e de como você inicializa o app. Este guia explica as diferenças entre as versões e como selecionar as que serão ativadas no app.
Números de versão do SDK
O número da versão do SDK especificado no arquivo build.gradle no nível do app determina se o app tem acesso aos recursos adicionados em uma versão específica. Por exemplo, o Autocomplete (novo) só está disponível na versão 3.5.0 ou mais recente do SDK.
Para mais informações sobre as mudanças introduzidas em cada versão do SDK, consulte as notas da versão do SDK do Places para Android.
Versões da API Places para o SDK do Places para Android
Além de especificar um número de versão do SDK, você também precisa selecionar o serviço da API Places que o SDK chama no console do Google Cloud: a API Places ou a API Places (nova). Junto com o número da versão do SDK, o serviço de API que você seleciona determina qual versão de recursos específicos estão disponíveis no app, como Autocomplete ou Autocomplete (novo). Embora você possa especificar apenas um número de versão do SDK, é possível ativar a API Places e a API Places (nova) na sua chave de API ao mesmo tempo e selecionar qual serviço o SDK vai chamar usando o método usado para inicializar o SDK no seu app. No entanto, na maioria dos casos, você vai querer ativar a API Places (nova) e usar as versões (novas) dos recursos do SDK no seu app.
Selecione a versão do SDK e os serviços da API
Para selecionar os recursos do SDK disponíveis no app, faça o seguinte:
- No projeto do Google Cloud, ative a API Places, a API Places (nova) ou ambas. Para mais informações, consulte Ativar APIs
- Nas restrições da chave de API, ative a API Places, a API Places (nova) ou ambas. Para saber mais, consulte Como restringir chaves de API.
No arquivo build.gradle no nível do app, especifique um número de versão. Para mais informações, consulte Instalação.
Inicialize o app chamando o método
Places.initializeWithNewPlacesApiEnabled()
ouPlaces.initialize()
.
Para mais informações sobre como selecionar o serviço da API Places, consulte Configurar seu projeto do Google Cloud.
Recursos do SDK disponíveis em cada versão
A tabela a seguir mostra quais versões do SDK e da API são necessárias para cada recurso do SDK:
Engenharia de | API Places ativada na chave de API | Método de inicialização | Versão mínima do SDK |
---|---|---|---|
Autocomplete (novo) | API Places (nova) | initializeWithNewPlacesApiEnabled() |
3.5.0 |
Place Details (novo) | API Places (nova) | initializeWithNewPlacesApiEnabled() |
3.3.0 |
Nearby Search (novo) | API Places (nova) | initializeWithNewPlacesApiEnabled() |
3.5.0 |
Place Photos (novo) | API Places (nova) | initializeWithNewPlacesApiEnabled() |
3.4.0 |
Text Search (novo) | API Places (nova) | initializeWithNewPlacesApiEnabled() |
3.3.0 |
Place Autocomplete | API Places | initialize() |
|
Current Place | API Places | initialize() |
|
Place Details | API Places | initialize() |
|
Place Photos (em inglês) | API Places | initialize() |
Considerações para escolher quais versões ativar
Para ajudar a decidir qual versão escolher, considere o seguinte:
- Se você é um novo cliente e está começando a usar o SDK do Places para Android, comece com a API Places (nova) e o novo SDK.
- Se você já for cliente, poderá continuar usando o SDK atual. No entanto, se você quiser aproveitar as melhorias de desempenho e de recursos do SDK do Places para Android (novo), use o novo SDK. Não é necessário migrar para o novo SDK. Basta seguir as etapas em Selecionar a versão do SDK e os serviços da API.
- No SDK do Places para Android (novo), os tokens de sessão estão disponíveis a partir da versão 3.5.0. Para mais informações, consulte Tokens de sessão.
- As chamadas feitas usando widgets do Place Autocomplete sempre chamam o Place Autocomplete, e não o Place Autocomplete (novo). As chamadas de widget não são afetadas pelo método de inicialização.
- O Place Photos (novo) só retorna um URI para uma imagem de bitmap, enquanto o Place Photos só retorna uma imagem em bitmap.
- O Current Place está disponível apenas no SDK do Places para Android, e não no SDK do Places para Android (novo).
Melhorias no SDK do Places para Android (novo)
Esta seção aborda os principais recursos adicionados ao SDK do Places para Android (novo).
Implementado na plataforma padrão do Google Cloud
O SDK do Places para Android (novo) está implementado na infraestrutura de serviços do Google Cloud. Essa implementação traz uma plataforma mais segura e confiável. Esse design padrão traz um nível de consistência para os SDKs, o que melhora a eficiência do desenvolvimento com o SDK do Places para Android (novo).
Tem desempenho aprimorado
O SDK do Places para Android (novo) melhora o desempenho, então vale a pena substituir os apps que usam o SDK atual.
Novos recursos
O SDK do Places para Android (novo) inclui as versões mais recentes de todos os recursos do SDK:
- Autocomplete (novo)
- Place Details (novo)
- Nearby Search (novo)
- Place Photos (novo)
- Text Search (novo)
Novo serviço Text Search
Text Search (novo): retorna informações sobre um conjunto de lugares com base em uma string, por exemplo, "pizza em São Paulo", "loja de sapatos perto do Rio de Janeiro" ou "Avenida Brasil, 123". O serviço responde com uma lista de locais correspondentes à string de texto e a todos os direcionamentos de localização definidos.
Novos dados de resposta adicionados ao Placed Details (novo) e Place Photos (novo)
O Place Details (novo) agora inclui a nova classe Review no objeto
Place
de resposta. A classe Place contém o novo métodogetReviews()
para oferecer suporte a esse campo. ChamegetReviews()
para retornar até cinco avaliações para um lugar.Place Photo (novo): adiciona
AuthorAttributions
à classePhotoMetadata
.AuthorAttributions
contém umList
de objetosAuthorAttribution
.
Nova resposta de URI adicionada ao Place Photos (novo)
Agora você pode usar o Place Photo (novo) para retornar um URI para um bitmap de imagem. Antes, só era possível retornar o próprio bitmap da imagem.
Preços simplificados
Os preços foram simplificados com o SDK do Places para Android (novo), para que você pague apenas pelos dados que usar. Os preços simplificados são implementados usando listas de campos, também chamadas de máscaras de campo.
Com o Place Details e o Text Search, você usa listas de campos para controlar a lista de campos a serem retornados na resposta. Você será cobrado apenas pelos dados solicitados. O uso de uma lista de campos é uma boa prática de design para garantir que você não solicite dados desnecessários. Isso ajuda a evitar cobranças desnecessárias no tempo de processamento e nas cobranças.
Para informações detalhadas sobre preços de ambos os SDKs, consulte Uso e faturamento.
Tipos de lugar expandidos
O novo SDK adiciona os tipos de lugar mostrados na tabela a seguir. Esses tipos são retornados como parte da resposta do Place Details e do Text Search. Você também pode usar esses novos tipos e os tipos existentes em uma pesquisa com o Text Search. Os novos tipos estão incluídos na Tabela 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 | fazenda | korean_restaurant | sporting_goods_store |
barber_shop | hotel-fazenda | lebanese_restaurant | sports_club |
bed_and_breakfast | fast_food_restaurant | Marina | 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 | alfaiate |
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 | Heliport | playground | vegetarian_restaurant |
convention_center | hiking_area | pré-escolar | vietnamese_restaurant |
casa de campo | historical_landmark | private_guest_room | visitor_center |
courier_service | home_improvement_store | ramen_restaurant | wedding_venue |
cultural_center | albergue | resort_hotel | atacadista |
dental_clinic | hotel | rest_stop |
Junto com esses novos tipos, a API Places (nova) moveu os tipos a seguir da Tabela 2 para a API Places para a tabela A na API Places (novo). Isso significa que agora você pode usar esses tipos como parte de uma pesquisa:
country
administrative_area_level_1
administrative_area_level_2
postal_code
locality