Примечание: Версия Google Play Services для Places SDK для Android (в Google Play Services 16.0.0) устарела с 29 января 2019 года и будет отключена в июле29, 2019. Доступна новая версия Places SDK для Android. Мы рекомендуем обновить ее до новой версии как можно скорее.Для получения дополнительной информации см. Руководство по миграции .
. Вы можете проверить указанное выше сообщение в по этой ссылке в разделе Уведомление об амортизации.
Разместить APIперемещены в отдельную библиотеку вместо Google Play Services.Поэтому вам нужно перейти на API-интерфейс New Place.
1.Добавьте эту зависимость в файл уровня приложения build.gradle:
implementation 'com.google.android.libraries.places:places:1.0.0'
Примечание: minSdkVersion вашего проекта приложения должно быть 14 или выше
2.Инициализируйте места в своей деятельности.
Places.initialize(getApplicationContext(), YOUR_API_KEY);
3.Вызовите функцию ниже, если вы хотите открыть PlaceAutocomplete Activity
private void startAutocompleteActivity() {
List<com.google.android.libraries.places.api.model.Place.Field> placeFields = new ArrayList<>(Arrays.asList(com.google.android.libraries.places.api.model.Place.Field.values()));
List<TypeFilter> typeFilters = new ArrayList<>(Arrays.asList(TypeFilter.values()));
// Create a RectangularBounds object.
RectangularBounds bounds = RectangularBounds.newInstance(
new LatLng(-33.880490, 151.184363),
new LatLng(-33.858754, 151.229596));
Intent autocompleteIntent =
new Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, placeFields)
.setLocationBias(bounds)
.setTypeFilter(typeFilters.get(0))
.build(this);
startActivityForResult(autocompleteIntent, 1001);
}
4.Напишите ниже код onActivityResult
/**
* Override the activity's onActivityResult(), check the request code, and
* do something with the returned place data (in this example it's place name and place ID).
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
if (resultCode == RESULT_OK) {
Place place = Autocomplete.getPlaceFromIntent(data);
Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
} else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
// TODO: Handle the error.
Status status = Autocomplete.getStatusFromIntent(data);
Log.i(TAG, status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
// The user canceled the operation.
}
}
}
Вы можете проверить это демо-приложение для более подробной информации
Теперь самое важное, чтоВы должны включить биллинг для использования New Place API для Android.
Чтобы использовать Places SDK для Android, вы должны включить ключ API во все запросы API, и вы должны включить биллинг для каждого из ваших проектов.
Проверьте эту ссылку для получения дополнительной информации и цен.
SKU: базовые данные
Поля в базовой категории включены в базовую стоимость запроса мест и не приводят к дополнительным сборам.Артикул базовых данных запускается, когда запрашивается любое из следующих полей: АДРЕС, ИД, LAT_LNG, ИМЯ, OPENING_HOURS, PHOTO_METADATAS, PLUS_CODE, TYPES, USER_RATINGS_TOTAL, VIEWPORT.
Вы можете проверить цены и другиев той же ссылке , приведенной выше.