Wpis z mikrobloga

Mireczki z #androiddev #android #programowanie potrzebuje waszej pomocy!
Robię aplikacje na adroida z geofencingiem. W zależności od wyborów klienta - będzie różna ilość geofence'ów. Próbowałem już paru tutoriali lecz żaden nie działał jakoś dobrze u mnie :/ Macie może jakieś godne polecenia?

Przy okazji mam też parę pytań:
1. Gdzie przechowujecie te miejsca/współrzędne itp? W Shared preferences? Wydaje mi się, że takie rozwiązanie będzie najlepsze?
2. Jak uaktualniać te miejsca? Potrzebuje aby co jakiś czas sprawdzane było czy może jest jakaś nowa oferta/miejsce dla użytkownika. Wyczytałem, że może to być Alarm Receiver, jak myślicie? Apka składa się z paru activity oraz kilku fragmentów. Najlepiej wrzucić to na początku apki?
3. No i właśnie jak to zrobić aby działało dobrze w tle.. Wrzuciłem sobie je na mapę i jeśli miałem włączoną to nawet, że przychodziły te powiadomienia lecz gdy wyłączyłem i apka działała sobie w tle to już nie :/
4. Czytałem o ograniczeniach - 100 geofence'ów na użytkownika. Jeśli będzie więcej to w jaki sposób to rozwiązać? Nowe nadpisują stare? Czy jak to działa?

Jakie najważniejsze praktyki związane z geofencingiem byście mogli polecić?
Dzięki z góry za odpowiedź i chęci pomocy! :)
#pytanie
  • 11
1. Gdzie przechowujecie te miejsca/współrzędne itp? W Shared preferences? Wydaje mi się, że takie rozwiązanie będzie najlepsze?


@Muscler: Shared preferences? To chyba zbyt prymitywne, żeby takie dane przechowywać. Nie lepiej zrobić prosty model i wrzucić to w jakiegoś SQLlite?

2. Jak uaktualniać te miejsca? Potrzebuje aby co jakiś czas sprawdzane było czy może jest jakaś nowa oferta/miejsce dla użytkownika. Wyczytałem, że może to być Alarm Receiver, jak myślicie? Apka składa się
@Muscler: i pamietaj ze jak testujesz na Huawei, Xiaomi czy innych telefonach z Emui albo Miui to one mają agresywną politykę ubijania aplikacji w tle.

1. Gdzie przechowujecie te miejsca/współrzędne itp? W Shared preferences? Wydaje mi się, że takie rozwiązanie będzie najlepsze?


@Muscler: Ja trzymałem w SharedPrefs i w sumie dawało radę, ważne żeby zrobić to tak żeby potem łatwo było zmienić storage na inny (np. wzorzec repository)

2. Jak
@Mithrindil: Aktualnie testuję na Jiayu, więc możliwe, że też jakiś problem może być :/

2. Tak, pobieram te dane z serwera. Dla każdego użytkownika mogą być inne. I jeśli ktoś znajdzie się w danym promieniu od jakiegoś punktu czyli tego geofence'a to chcę aby mu przyszło powiadomienie. No i muszę sprawdzać co jakiś czas czy nie ma nowej oferty dla danego użytkownika.

3. No właśnie wyczytałem, że tak to działa ale
No i muszę sprawdzać co jakiś czas czy nie ma nowej oferty dla danego użytkownika.


@Muscler: zmień to na "muszę powiadomić użytkownika jak pojawią się nowe oferty". Możesz wysyłać z serwera indywidualne wiadomości PUSH, dzięki temu apka w ogóle nie będzie zużywała baterii a zostanie powiadomiona jak się coś pojawi nowego na serwerze.

3. No właśnie wyczytałem, że tak to działa ale u mnie mam wrażenie, że albo działa to z
@Mithrindil: powiadomienia po dodaniu nowej oferty to jedno, jeszcze muszę aktualizować bazę geofenców dla każdego użytkownika :/ Po dodaniu nowej oferty już mam zrobione ( chociaż tu też mam pewien problem, bo dawniej działały na każdym telefonie a po zmianie package name apki, teraz tylko przychodzą na niektóre telefony :/ a wszędzie pozmieniałem tak jak powinno być i nowy projekt firebase utworzyłem. Więc z tym też jeszcze się meczę..) no i
@Mithrindil: Pobrałem i odpaliłem FakeGPS i wychodzi na to, że po odpaleniu mapy na której mam wyświetlone wszystkie geofence'y, gdy znajduje sie w promieniu któregoś to powiadomienie przychodzi od razu, lecz jak poruszam się dalej, (wchodze w kolejny) to juz to powiadomienie nie przychodzi, dopiero po wyjściu z activity mapy i wejściu od nowa. Czyli tak jakby te geofency się nie zapisywały?
@Mithrindil: kurcze, jednak mam wrażenie, że fakeGPS mi nie działa dobrze. Tzn na mapie niby mi pokazuje, że jestem obok jakiegos geofenca ale powiadomienie mi nie przychodzi. A jak wrzuciłem na próbe geofence obok tego gdzie sie znajduję teraz ( prawdzią lokalizacje) to przyszło mi włąsnie z tej prawdziwej. A dziwne, skoro na mapie mnie pokazuje w innym miejscu :p