Я пытаюсь перейти на новое автозаполнение Place, используя это руководство по миграции, предоставленное Google. Нажмите здесь, чтобы перейти к руководству по миграции .
В этом я следую разделу «Использовать намерение для запуска операции автозаполнения», непосредственно перед Выбор места размещения устарел Раздел.
Когда я использовал реализацию
com.google.android.libraries.places: мест: 1.0.0 '
Новая клиентская библиотека, я не столкнулся с какой-либо проблемой, и место автозаполнения работало просто отлично.Но Мне пришлось перейти в библиотеку совместимости , которая использует
реализацию 'com.google.android.libraries.places: place-compat: 1.0.0 '
, потому что мне тоже нужно использовать указатель мест , и если я использую новую клиентскую библиотеку
внедрение' com.google.android.libraries.places: sites: 1.0.0 '
Я не могу использовать средство выбора мест.
Это код для автозаполнения Place:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* Initialize Places. For simplicity, the API key is hard-coded. In a production
* environment we recommend using a secure mechanism to manage API keys.
*/
if (!Places.isInitialized()) {
Places.initialize(getApplicationContext(), "YOUR_API_KEY");
}
}
public void startAutocompleteActivity() {
// 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 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 == 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.
}
}
}
Так почему же не определены следующие методы и переменные?
Places.isInitialized ()
- Поле в Place.Field
- Autocomplete и AutocompleteActivityMode in Intent intent = new Autocomplete.IntentBuilder (AutocompleteActivityMode.FULLSCREEN, поля) .build (this);
Android Studio говорит «Невозможно разрешить символ» для вышеупомянутого.И я тоже импортировал правильную библиотеку: import com.google.android.libraries.places.compat.Places;