2016-11-19 15 views
5

Używam interfejsu Google Places API. Ale nie mogę znaleźć sposobu na zmniejszenie liczby żądań bez implementowania pozostałego interfejsu API.Opóźnienie podczas korzystania z narzędzia PlaceAutocomplete bez używania interfejsu API odpoczynku

try { 
     Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
       .setFilter(new AutocompleteFilter.Builder() 
         .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS).build()) 
       .build(mActivity); 
     startActivityForResult(intent, REQUEST_CODE); 
    } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) { 
    } 
+0

Google Places API Web wymusza domyślny limit 1000 bezpłatnych żądań na okres 24 godzin, po czym zacznie niepowodzeniem. Czy możesz dokładniej wyjaśnić, co chcesz ograniczyć? Skoro istnieje już domyślny limit, czy chcesz narzucić jakiś inny limit za pośrednictwem swojej aplikacji? Nieco więcej informacji może pomóc w rozwiązaniu problemu. –

Odpowiedz

0

Zgaduję, że martwisz się o koszty interfejsu API. Jeśli sprawdzisz warunki, zobaczysz, że możesz składać nieograniczoną liczbę żądań, jeśli korzystasz z google UI (Fragment). Jeśli chcesz uniknąć wykonywania wielu wywołań zdalnego interfejsu API, najprostszym sposobem byłoby ręczne wywołanie usługi REST, ale przydział jest dość cienki (1000 żądań w ciągu 24 godzin), więc powinieneś zawinąć aplet REST w serwisie internetowym własne i zadzwoń do tego z aplikacji. Dodatkowo, powinieneś ustawić buforowanie po obu stronach (serwer i aplikacja), pamiętaj, że google umożliwia buforowanie żądań miejsc przez 30 dni. W takim przypadku możesz zdecydować się na wywołanie api, gdy użytkownik wprowadzi określoną liczbę znaków.

0

Długa droga.

  1. Zastosowanie JD dekompilować słoik założona w YouProject...\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-places\9.4.0\jars i Playservices apk
  2. aktywności znalezienia z filtrem myślą, że ma działanie "com.google.android.gms.location.places.ui.AUTOCOMPLETE"
  3. Get najwyższa aktywność
  4. Znajdź zmienną i zmień wartość tego opóźnienia przez odbicie java.

lub Krótka droga Zaimplementuj PlaceCompleteAdapter wiele łatwiej :)