Lorsque j'essaie de rechercher à Place Autocomplete, j'ai Impossible de charger les résultats de la recherche et les journaux indiquent
"Erreur lors de la saisie semi-automatique: OVER_QUERY_LIMIT"
J'ai activé https://console.cloud.google.com/ et la clé API fonctionne bien.
Code Java
String apiKey = "MY API KEY";
private RadioGroup mRadioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_costumer_map);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
Places.initialize(getApplicationContext(), apiKey);
PlacesClient placesClient = Places.createClient(this);
// Initialize the AutocompleteSupportFragment.
AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment)
getSupportFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
// Specify the types of place data to return.
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
// Set up a PlaceSelectionListener to handle the response.
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
destination = place.getName().toString();
destinationLatLng = place.getLatLng();
Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
}
@Override
public void onError(Status status) {
Log.e(TAG, "onError: " + status);
}
});
Code XML
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/toolbar"
Android:layout_margin="20sp">
<fragment
Android:id="@+id/place_autocomplete_fragment"
Android:name="com.google.Android.libraries.places.widget.AutocompleteSupportFragment"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</Android.support.v7.widget.CardView>
Vous recevrez un PLACES_API_RATE_LIMIT_EXCEEDED
erreur si vous utilisez la version Play Services désormais obsolète du SDK Places com.google.Android.gms:play-services-places
comme expliqué ici :
Remarque: Si votre application Android Android rencontre des erreurs 9005 PLACES_API_RATE_LIMIT_EXCEEDED, vous utilisez peut-être une version obsolète du SDK Places pour Android. La version Google Play Services du SDK Places pour Android (par exemple com.google.Android.gms: play-services- places) a été déconseillé le 29 janvier 2019 et a été désactivé le 29 juillet 2019. Une nouvelle version du SDK Places pour = Android est maintenant disponible. Nous vous recommandons de mettre à jour la nouvelle version dès que possible. Pour plus de détails, consultez le guide de migration.
Vous devez remplacer la ligne suivante dans votre build.gradle
:
implementation 'com.google.Android.gms:play-services-places:<VERSION>'
Avec:
implementation 'com.google.Android.libraries.places:places:2.2.0'
Notez que la version 2 ou supérieure nécessite androidx. Au moment de la rédaction, la dernière version qui ne nécessite pas androidx est 1.1.0.