Z rozmów i dyskusji na Blipie wnoszę, że istnieją poważne rozbieżności co do tego czy w Androidzie ustalenie pozycji może kosztować.
Ja twierdzę, że może kosztować gdy location providerem będzie "network", a my będziemy podpięci do Internetu przez sieć komórkową.
W momencie gdy będziemy podpięci przez WiFi dostawca "network" może, a nawet powinien być bezpłatny.
Dlatego na szybko napisałem program, który to ma testować.
Oto kod jego najważniejszej aktywności:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
List<String> list = lm.getAllProviders();
StringBuilder sb = new StringBuilder();
for (String str:list) {
LocationProvider lp = lm.getProvider(str);
if (lp!=null) {
sb.append(str).append(" ").append(lp.hasMonetaryCost()).append("\n");
}
}
TextView tv = (TextView)findViewById(R.id.toster);
tv.setText(sb);
}
Sam program potrzebuje jeszcze tego by na głównym ekranie był element TextView o id "toster", oraz by w AndroidManifest.xml były odpowiednie permissiony (to przez to, że używamy lokalizacji, stąd potrzebne są pozwolenia ACCESS_FINE_LOCATION i ACCESS_COARSE_LOCATION.
Tu są źródła jakby kogoś to interesowało.
A tutaj sam plik APK (http://www.przemelek.pl/file/GPSTest.apk), który można zainstalować na telefonie.
Tutaj QRCode:
Teraz prośba :-)
Jak masz telefon z Androidem to zainstaluj ten program i podeślij mi informację o wyniku jego działania, wraz z informacją czy w momencie uruchomienia programu Twój telefon był zalogowany do sieci WiFi czy tylko do sieci komórkowej (i ważne czy miał skonfigurowanego APNa).
Program działa w taki sposób, że wypisuje wszystkie nazwy dostępnych location providerów, a obok nich to czy mogą być płatne czy nie. U mnie na G1 z Android 1.6 gdy jestem podłączony do Internetu przez sieć komórkową mam taki wynik:
network true
gps false
Co oznacza, że ustalenie pozycji przy pomocy sieci może kosztować, a przy pomocy GPS nie będzie nigdy kosztować.
Z góry dziękuję za wszelkie dane :-) [tu, na Google Buzz, na maila, whatever]
Podobne postybeta
AppInventor - pierwsze wrażenia i pierwsze programy :-)
Android, lokalizacja i koszty
Nie tylko IE6 powinno pójść do piachu, każdy Internet Explorer powinien!!!!
Zinwigiluj się sam ;-)
Niecne wykorzystanie refleksji... czyli jak poszukać tekstu w drzewie obiektów? ;-)
network true
OdpowiedzUsuńpassive false
gps false
Taki wynik mam nawet jak mam wyłączone WiFi I o dznaczone łączenie się z siecią mobilną (data enabled: no)
PS: po co twoja aplikacja chce mieć dostęp do odczytu/zapisu danych na karcie SD? Strach instalować...
To chyba standard dla aplikacji instalowanych spoza marketu, gdyby tą aplikacje instalować przez Market to prosiłaby tylko o zgodę na użycie tych permissionów z lokalizacją związanych.
OdpowiedzUsuń