L'SDK Places SDK for Android versione 3.4.0 supporta due versioni di SDK: L'SDK Places per Android è l'SDK esistente e l'SDK Places per Android (nuovo) è la versione di nuova generazione dell'SDK.
Con il rilascio dell'SDK Places per Android versione 3.4.0, la tua prima attività è decidere quale SDK utilizzare. Questo vale se sei un nuovo cliente o un cliente esistente che utilizza già l'SDK. Utilizza questa guida per comprendere le principali differenze tra i due SDK.
Come selezionare la versione dell'SDK
Nel backend, Places SDK for Android si basa sul servizio API Places, API Places (nuova) o API Places. Prima di poter utilizzare Places SDK for Android, devi abilitare il servizio API Places nel tuo progetto Google Cloud.
Per Android, ci sono due azioni che devi intraprendere per stabilire quali API puoi utilizzare nella tua app:
Nel tuo progetto, devi abilitare l'API Places (nuova), l'API Places o entrambe nella chiave API, a seconda di quale vuoi utilizzare nella tua app.
Inizializza l'app chiamando il metodo
Places.initializeWithNewPlacesApiEnabled()
oPlaces.initialize()
.
Seleziona il tuo SDK
La versione del servizio API Places che attivi controlla la versione dell'SDK utilizzata dalla tua app:
Entrambi: attiva tutte le funzionalità sia per l'SDK Places per Android che per l'SDK Places per Android (nuovo). Usa i metodi
Places.initializeWithNewPlacesApiEnabled()
ePlaces.initialize()
per controllare le funzionalità disponibili.API Places: abilita l'SDK Places per Android esistente. Non hai accesso alle nuove funzionalità aggiunte in Places SDK for Android versione 3.4.0.
API Places (nuova): abilita l'SDK Places per Android (nuovo) e tutte le nuove funzionalità descritte in Funzionalità principali aggiunte all'SDK Places per Android (novità), ma non attiva funzionalità esistenti come Luogo attuale e completamento automatico di Place.
Per ulteriori informazioni sulla selezione del servizio API Places, vedi Configurare il progetto Google Cloud.
Inizializza la tua app
Quando inizializza l'app, devi chiamare il metodo Places.initializeWithNewPlacesApiEnabled()
o Places.initialize()
.
La tabella seguente mostra gli effetti dell'abilitazione di ogni SDK e della chiamata di ciascun metodo di inizializzazione. Ad esempio, se abiliti l'SDK Places (Nuovo) e chiami
Places.initializeWithNewPlacesApiEnabled()
, puoi utilizzare tutte le nuove API
e tutte le API esistenti.
Se attivi l'SDK Places (nuovo) e chiami
Places.initialize()
, non puoi utilizzare le nuove funzionalità di Place Details e
Place Photo, ma puoi chiamare la nuova ricerca testuale. Se non abiliti l'API Places, non puoi accedere alla versione precedente di Place Details, ma puoi comunque chiamare la nuova ricerca testuale.
Versione | API | SDK abilitato nella chiave API | Metodo di inizializzazione | ||
---|---|---|---|---|---|
API Places | API Places (novità) | initialize() |
initializeWithNewPlacesApiEnabled() |
||
v3.3.0 | Places Details | ||||
Dettagli luogo (novità) | |||||
Metadati delle foto (novità) | |||||
Ricerca testuale (novità) | Entrambi i metodi | ||||
v3.4.0 | URI fotografico (nuovo) | ||||
Bitmap foto | Entrambi i metodi | ||||
CurrentPlace | Entrambi i metodi | ||||
Completamento automatico | Entrambi i metodi |
Quale SDK scegli?
Per decidere quale versione scegliere:
Se sei un nuovo cliente che ha appena iniziato a utilizzare l'SDK Places per Android, inizia con l'API Places (nuova) e il nuovo SDK.
Se sei uno sviluppatore Kotlin, puoi utilizzare entrambi gli SDK, ma le nuove funzionalità dell'SDK Places per Android (nuovo) sono disponibili solo in Java nella versione 3.4.0.
Se sei un cliente esistente e utilizzi i token di sessione, continua a usare l'SDK esistente. L'SDK Places per Android (nuova) al momento non supporta i token di sessione.
Se sei un cliente esistente, puoi continuare a utilizzare l'SDK esistente. Tuttavia, per sfruttare i miglioramenti delle prestazioni e i miglioramenti delle funzionalità dell'SDK Places per Android (novità), puoi utilizzare il nuovo SDK.
Non è necessaria alcuna migrazione quando si passa al nuovo SDK. Devi solo:
- Attiva l'API Places (nuova) sulla chiave API utilizzata nella tua app. Per ulteriori informazioni, consulta la pagina relativa all'utilizzo delle chiavi API.
Nella sezione
dependencies
del filebuild.gradle
a livello di modulo, aggiorna la dipendenzaplaces
e aggiungi la dipendenzakotlin-bom
:dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) implementation 'com.google.android.libraries.places:places:3.3.0' }
Per maggiori informazioni sulla dipendenza
kotlin-bom
, consulta Utilizzo della versione di kotlin-stdlib più recente nelle dipendenze transitive.- Aggiorna l'app esistente per chiamare il nuovo metodo
Places.initializeWithNewPlacesApiEnabled()
per inizializzare l'app. Per saperne di più, consulta Inizializzare il client API Places.
Le app esistenti continuano a funzionare senza modifiche, ma ora puoi usufruire di tutte le nuove funzionalità dell'SDK.
Funzionalità principali aggiunte a Places SDK for Android (novità)
Questa sezione illustra le funzionalità principali aggiunte all'SDK Places per Android (novità).
Implementata sulla piattaforma Google Cloud standard
L'SDK Places for Android (New) è implementato nell'infrastruttura dei servizi su Google Cloud. Questa implementazione offre una piattaforma più sicura e affidabile. Questo design standard offre un livello di coerenza tra gli SDK che migliorano l'efficienza dello sviluppo con Places SDK for Android (Novità).
Prestazioni migliorate
L'SDK Places for Android (New) offre prestazioni migliori, pertanto vale la pena sostituire le app che utilizzano l'SDK esistente.
Nuovo servizio di ricerca testuale
La ricerca testuale restituisce informazioni su un insieme di luoghi in base a una stringa, ad esempio "pizza a New York" o "negozi di scarpe vicino a Ottawa" o "123 Main Street". Il servizio risponde con un elenco di luoghi corrispondenti alla stringa di testo e con eventuali bias di località impostati.
Nuovi dati di risposta aggiunti a Dettagli sul luogo e Foto del luogo
Place Details ora include la nuova classe Review nell'oggetto
Place
risposta. La classe Place contiene il nuovo metodogetReviews()
per supportare questo campo. Chiama il numerogetReviews()
per visualizzare fino a cinque recensioni per un luogo.Foto del luogo aggiunge
AuthorAttributions
al corsoPhotoMetadata
.AuthorAttributions
contieneList
di oggettiAuthorAttribution
.
Nuova risposta URI aggiunta a Place Photo
Ora puoi utilizzare Place Photo per restituire un URI a una bitmap di immagine. In precedenza, potevi solo restituire la bitmap dell'immagine stessa.
Prezzi semplificati
I prezzi sono semplificati con l'SDK Places for Android (Nuovo) in modo che tu paghi solo per i dati che utilizzi. I prezzi semplificati vengono implementati utilizzando elenchi di campi, chiamati anche mascherine di campo.
Con Place Details e la ricerca di testo puoi utilizzare gli elenchi di campi per controllare l'elenco di campi da restituire nella risposta. Ti vengono quindi addebitati solo i dati richiesti. L'utilizzo di un elenco di campi è una buona pratica di progettazione per garantire di non richiedere dati superflui, il che contribuisce a evitare tempi di elaborazione e addebiti di fatturazione superflui.
Per informazioni dettagliate sui prezzi di entrambi gli SDK, consulta la pagina Utilizzo e fatturazione.
Tipi di luoghi espansi
Il nuovo SDK aggiunge i tipi di luogo mostrati nella seguente tabella. Questi tipi vengono restituiti come parte delle risposte di Place Details e Ricerca testuale. Puoi anche utilizzare questi nuovi tipi, e quelli esistenti, in una ricerca con Ricerca testuale. I nuovi tipi sono inclusi nella Tabella 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 | agriturismo | lebanese_restaurant | sports_club |
bed_and_breakfast | fast_food_restaurant | Marina | sports_complex |
brazilian_restaurant | ferry_terminal | mercato | steak_house |
breakfast_restaurant | fitness_center | medical_lab | sushi_restaurant |
brunch_restaurant | french_restaurant | mediterranean_restaurant | swimming_pool |
bus_stop | gift_shop | mexican_restaurant | su misura |
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 |
consulente | eliporto | playground | vegetarian_restaurant |
convention_center | hiking_area | scuola materna | vietnamese_restaurant |
cottage | historical_landmark | private_guest_room | visitor_center |
courier_service | home_improvement_store | ramen_restaurant | wedding_venue |
cultural_center | ostello | resort_hotel | grossista |
dental_clinic | hotel | rest_stop |
country
administrative_area_level_1
administrative_area_level_2
postal_code
locality