5

Obecnie tworzę aplikację, która pobiera dane z serwera w określonych odstępach czasu. Rozumiem, że nie jest to najskuteczniejszy sposób, ponieważ często będzie on odpytywał serwer bez pobierania nowych danych.Korzystanie z uprawnień, których Android 2.1 nie zna (w systemie Android 2.1)

Rozwiązaniem tego problemu byłoby użycie C2DM, a ja obecnie szukam sposobu ustawienia tego. Jednak około 7% moich użytkowników nadal korzysta z Androida 2.1 i nie chcę ich wykluczać z mojej aplikacji.

Pomyślałem, że mogę sprawdzić, która wersja Androida jest uruchomiona przez użytkowników, a następnie zdecydować, czy używać C2DM czy odpytywania (mając kod dla obu w tym samym apk). Jednakże, aby uruchomić kod C2DM, będę musiał określić, używając pewnych uprawnień w moim manifeście, i obawiam się, że przy tych uprawnieniach użytkownicy Androida 2.1 nie będą mogli pobrać mojego pliku apk.

Moje pytanie brzmi, czy mam rację, zakładając, że 2.1 użytkownicy nie będą mogli pobrać aplikacji z uprawnieniami C2DM i jak ją obejść, jeśli tak. Czy będę musiał utworzyć dwa różne pliki APK i zaktualizować je oddzielnie przy każdej (innej) aktualizacji, którą wprowadzam do aplikacji, która nie jest ograniczona do starszych wersji Androida?

Dzięki.

+0

To jest dobre pytanie, ale ma bardzo małą widoczność przy obecnym tytule. Polecam coś w stylu "różne uprawnienia dla każdej wersji". –

+0

Dziękuję, zmieniłem tytuł na bardziej ogólny tytuł. – Lars

Odpowiedz

4

Google C2DM nie będzie działać w wersji 2.2, ale możesz zachować uprawnienia we wszystkich wersjach. Jak wszystko, co robisz, to ustawianie odbiorców w manifeście.

Po zarejestrowaniu się w wersji 2.2 po prostu nie otrzymasz wyników do zgłoszenia rejestracyjnego.

Wystarczy, aby odpowiedź bardziej wyraźne:

jak definiują uprawnienia niestandardowe:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

Pre 2.2 urządzenia będą tylko Ignoruj ​​ tego uprawnienia. Oznacza to, że każde urządzenie może instalować z tym zestawem. Po prostu nie działa w wersji 2.2.

P.S. Warto również zauważyć. Google C2DM nie będzie działać na urządzeniach bez rynku Android (i bez konfiguracji rynku Android).

+0

W celu wyjaśnienia, uprawnienie "com.google.android.c2dm.permission.RECEIVE" jest uprawnieniem niestandardowym? To uprawnienie nie jest zdefiniowane przeze mnie (ale przez Google?). – Lars

+1

To pozwolenie faktycznie odnosi się do pozwolenia w aplikacji Market Place w wersji 2.2 lub nowszej. Zgodnie ze swoim zwyczajem, nic nie stoi na przeszkodzie, aby ludzie zaczęli pobierać/pracować na urządzeniach z wersji 2.2. Niestety nie mam linku do wyjaśnienia, jak działają uprawnienia niestandardowe. Wystarczy powiedzieć, chyba że jego * android.permission.X * rynek zignoruje go. –

+0

Wygląda na to, że muszę przeczytać o uprawnieniach. Dziękuję bardzo. – Lars

Powiązane problemy