9

Zajmuję się tworzeniem aplikacji przy użyciu usługi Fused Location Provider. Mam wątpliwości. Aby uzyskać lokalizację w regularnych odstępach czasu, używa requestLocationUpdates(). Ale z którego źródła pochodzi lokalizacja z WIFI lub GPS lub sieci. W mojej aplikacji pobiera lokalizację w regularnych odstępach czasu tylko wtedy, gdy jest włączone WiFi. Kiedy Wi-Fi jest w stanie WYŁ., Nie może uzyskać lokalizacji (powinna uzyskać lokalizację z jakiegoś innego źródła, zarówno z GPS, jak iz Sieci, ale nigdy nie otrzymuje lokalizacji, lub muszę napisać listę odbiorców dla GPS i sieci). Nie wiem, jaki jest problem. Czy ktoś może mi pomóc.Dostawca usługi Fused Location w systemie Android:

I niezależnie od tego, czy działa tylko wtedy, gdy wszyscy dostawcy (sieć Wi-Fi, GPS, sieć) są dostępni.

public void checkPlay(){ 

    int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); 
    if (resp == ConnectionResult.SUCCESS) { 
     locationClient = new LocationClient(this, this, this); 
     locationClient.connect(); 
    } else { 
     Toast.makeText(this, "Google Play Service Error " + resp, 
       Toast.LENGTH_LONG).show(); 

    } 
} 


public void onConnected(Bundle arg0) { 
    // TODO Auto-generated method stub 


    if (locationClient != null && locationClient.isConnected()) { 

     locationRequest = LocationRequest.create(); 
     locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     locationRequest.setInterval(100); 
     locationClient.requestLocationUpdates(locationRequest, this); 

    } 
} 

     public void onLocationChanged(Location location) { 
    // TODO Auto-generated method stub 
    try { 
     if (location != null) { 
      lat = location.getLatitude(); 
          long = location.getLongitude(); 
     } 
    } catch (Exception e) { 
     Log.d(Fots.TAG, 
       "GpsTrackService.mGpsLocationListener.onLocationChanged", e); 

    }  
} 
+0

odsyłają to może być pomocne http://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/ – Aravin

+0

jak testować aktualizacje lokalizacji? –

+0

twntee..I write onLocationChanged() w usłudze. Po zalogowaniu się do aplikacji usługa zostanie uruchomiona i będzie uruchamiać usługę co 1 minutę, a następnie aktualizować lokalizację co 5 sekund, używając "locationRequest.setPriority (LocationRequest.PRIORITY_HIGH_ACCURACY);" – Raja45

Odpowiedz

2

Jeśli używasz PRIORITY_HIGH_ACCURACY jak w przykładzie, będzie korzystać ze wszystkich dostępnych źródeł (Internet, komórka, GPS oraz czujniki wewnętrzne). Jeśli wyłączysz wifi i jesteś w budynku, prawdopodobnie nie możesz uzyskać blokady GPS (zazwyczaj gps nie działa w domu, z wyjątkiem niektórych obszarów, gdy jesteś blisko okna). Jeśli wifi, komórka i gps są niedostępne (albo dlatego, że są wyłączone w ustawieniach lub nie są dostępne w danej pozycji), nie zwrócą lokalizacji (same czujniki wewnętrzne nie wystarczą do utworzenia lokalizacja od zera).

2

Jeśli jesteś w domku, GPS prawdopodobnie nie będzie działał. Więc spadnie z powrotem do wifi/triangulacji.

6

Fused API udostępnia 3 dostawców lokalizacji.

  1. HIGH_ACCURACY
  2. BALANCED_POWER
  3. NO_POWER

Tryb HIGH_ACCURACY użyć wszystkich dostawców lokalizacji, to jednak priorytety dostawców lokalizacji GPS i to wraz z dostawcami lokalizacji. Dokładność lokalizacji wynosi około 10 metrów zasięgu.

Tryb BALANCED_POWER wyklucza GPS dla swojej listy dostawców lokalizacji i korzysta z innych dostawców, takich jak wieże telefoniczne, wifi itp. W tym przypadku dokładność lokalizacji wynosi około 40 metrów.

NO_POWER nie używa żadnego dostawcy lokalizacji, zamiast tego jest pasywnym trybem pozyskiwania lokalizacji z innych aplikacji. Dokładność może wynosić milę lub więcej. Opiera się wyłącznie na lokalizacjach ostatnio pobieranych przez inne aplikacje.

Powiązane problemy