Я использую пользовательское действие для выполнения запросов автозаполнения в Google Places API.
Мы используем тот же код на примерах: В моем адаптере:
// Use the builder to create a FindAutocompletePredictionsRequest.
FindAutocompletePredictionsRequest request = FindAutocompletePredictionsRequest.builder()
// Call either setLocationBias() OR setLocationRestriction().
// .setLocationBias(bounds)
.setLocationBias(mBounds)
.setCountry("br")
// .setTypeFilter(TypeFilter.ADDRESS)
.setSessionToken(session)
.setQuery(constraint.toString())
.build();
Но где я`Я пойду, получу подробную информацию о месте:
List<Place.Field> placeFields = Arrays.asList(Place.Field.LAT_LNG);
FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
//request.getSessionToken(); TEST TOKEN
placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
Place place = response.getPlace();
returnResult(new LatLng(place.getLatLng().latitude, place.getLatLng().longitude), mResultList.get(position).primaryText.toString());
//Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
if (exception instanceof ApiException) {
ApiException apiException = (ApiException) exception;
int statusCode = apiException.getStatusCode();
// Handle error with given status code.
Log.e(TAG, "Place not found: " + exception.getMessage());
}
});
И я сделал:
request.getSessionToken();
Я получил нулевой токен, я думаю, что это вызывает много запросов по API.В документации говорится, что необходимо передать токен снова при вызове fetchPlace () , но где?