to system, który je utrwalił, czy muszę je ponownie dodać po ponownym uruchomieniu? Nie znalazłem nic na ten temat w dokumentacji https://developer.android.com/training/location/geofencing.htmlCzy geofence z Androidem przetrwają ponowne uruchomienie?
Odpowiedz
Geofences nie przetrwają po ponownym uruchomieniu komputera. Przetestowałem i możesz znaleźć próbkę here.
Musisz posłuchać akcji BOOT_COMPLETED i ponownie dodać geofences.
Uwaga: Jeśli aplikacja zainstalowana na zewnętrznym pamięci (karta SD), nigdy nie otrzyma Boot Kompletna działania. Musisz więc podać android:installLocation="internalOnly"
w manifest tag
. Dzieje się tak, ponieważ urządzenie z Androidem będzie transmitować BOOT_COMPLETED akcja przed skonfigurowaniem pamięci zewnętrznej.
Jakie dane chcesz zachować? Czy jest to region geofence w Twoim urządzeniu lub region geofence zapisany przez interfejs API lokalizacji usługi Google Play?
Uważam, że urządzenie musi zarejestrować region (określony przez jego szerokość, długość i szerokość) w Usłudze Google Play (za pośrednictwem LocationClient). Musisz również podać czas wygaśnięcia, typ przejścia, który chcesz zgłosić, oraz zamiar, z którego otrzymasz powiadomienie.
Ten region będzie przechowywany (zdalnie) nie w twojej aplikacji. Po upływie czasu wygaśnięcia usługa Google Play automatycznie ją usunie. Możesz także ustawić go jako NEVER_EXPIRE. Jeśli region jeszcze nie wygasł, usługa Google Play powiadomi o tym Twoją aplikację (w intencji wysyłanej podczas wywoływania addGeofences).
Źródło regionu (szerokość, długość, promień) zależy od implementacji.
dziękuję, czy masz na to źródło? – ligi
Zobacz te dokumenty: http://developer.android.com/reference/com/google/android/gms/location/Geofence.Builder.html i [http://developer.android.com/reference/com/google /android/gms/location/LocationClient.html#addGeofences(java.util.List
Po prostu przyjrzałem się przykładowej aplikacji GeofencingDetection. – ogramus
Nie znalazłem żadnej dokumentacji potwierdzającej to, ale moje własne eksperymenty pokazały, że nie są one zachowywane po ponownym uruchomieniu komputera.
Moja konfiguracja była następująca:
- aplikacja Run
- Aplikacja tworzy różne granic geograficznych na pierwszym uruchomieniu tylko jako NEVER_EXPIRE
- aplikacja Wyjście
- używać telefonu w obszarach oznaczonych ogrodzeń
- Potwierdź kratki wyzwalające oczekujące zamiary, które są wysyłane do IntentService
- Zostaw region
- Reboot phone
- Ponownie wprowadź regionu
- oczekiwaniu zamiar nie zostanie wysłany do IntentService
Jeśli ktoś ma więcej informacji na ten temat od kogoś w Google prosimy o komentarz!
Musisz ponownie dodać geofences przy ponownym uruchomieniu komputera. W dokumentacji mówi się, że geofences są usuwane przy ponownym uruchomieniu. –
Witam, w tym http://developer.android.com/training/location/geofencing.html samouczku naprawdę nie rozumiem użycia 'SharedPreferences', ponieważ nigdy nie są używane w czasie dostępu do danych. Czy wiesz, dlaczego używane jest urządzenie do przechowywania ciągłego. –
Kiedy zostaniesz wyzwolony z Geofence, dostaniesz identyfikator tej konkretnej strefy geofence. Ale w czasie rzeczywistym mamy dużo informacji zamiast tylko id. SharedPreferences jest tak samo jak pamięcią masową, aby zapisać informacje o geofence, takie jak id, messages, lat, lng i kilka innych wartości z nim związanych. – Sundeep1501
Dzięki Sundeep to logiczne. Przechowuję już dane Geofence w bazie danych. Byłem po prostu zakłopotany i zakładając, że może to być GeoFence Api, wykorzystując dane, które zostały zapisane w "SharedPreferences". –