web-dev-qa-db-fra.com

Placer une erreur de saisie semi-automatique lors de la saisie semi-automatique: OVER_QUERY_LIMIT

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.

enter image description here

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>
7
AhmedEssam

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.

0
Jamie Cockburn