Google Places SDK для Android устарел, поэтому нам нужно перейти на Places API .Для реализации автозаполнения Place с использованием нового API Places ... выполните следующие действия.
Сначала включите PlacesAPI в консоли разработчика, затем установите клиентскую библиотеку, обновив ее в gradle.
(Примечание. Вы можете установить только клиентскую библиотеку или библиотеку совместимости, но НЕ обе)
implementation 'com.google.android.libraries.places:places:1.0.0'
Теперь инициализируйте приведенный ниже код внутри Oncreate ();
// Add an import statement for the client library.
import com.google.android.libraries.places.api.Places;
// Initialize Places.
Places.initialize(getApplicationContext(), "***YOUR API KEY***");
// Create a new Places client instance.
PlacesClient placesClient = Places.createClient(this);
Новые PlacesAPI инициализируется ..
Для мест автозаполнения используйте следующий код (Вы также можете использовать фрагмент автозаполнения)
// Set the fields to specify which types of place data to return.
List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
// Start the autocomplete intent.
Intent intent = new Autocomplete.IntentBuilder(
AutocompleteActivityMode.FULLSCREEN, fields)
.build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
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.
}
}
}
- Убедитесь, что разрешения вманифест
- Сгенерирован ключ API.
- Адреса API мест включены в Dev Console.
УДАЛИТЬ (если вы добавили)
implementation 'com.google.android.gms:play-services-places:16.0.0'
Обязательные заголовочные файлы
import com.google.android.libraries.places.api.Places;
import com.google.android.libraries.places.api.model.Place;
import com.google.android.libraries.places.api.net.PlacesClient;
import com.google.android.libraries.places.widget.Autocomplete;
import com.google.android.libraries.places.widget.AutocompleteActivity;
import com.google.android.libraries.places.widget.model.AutocompleteActivityMode;
Надеюсь, это поможет ..