Android-App kann nicht auf den Standort auf Emulator mit FusedLocationApi zugreifen

Ich habe eine Android-App, die Platz erhält:

private LocationRequest createLocationRequest() { LocationRequest mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(120000); mLocationRequest.setFastestInterval(60000); mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); return mLocationRequest; } private GoogleApiClient getLocationApiClient(){ return new GoogleApiClient.Builder(App.instance) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); } ... apiClient = getLocationApiClient(); apiClient.connect(); @Override public void onConnected(@Nullable Bundle bundle) { ... LocationRequest locationRequest = createLocationRequest(); LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, locationRequest, new LocationListener() { @Override public void onLocationChanged(Location newLocation) { //***THIS IS NEVER CALLED ON EMULATOR*** } }); } 

Beim Ausführen auf Gerät (Galaxy S3, Android 4.4.4) gibt es überhaupt kein Problem. Beim Ausführen auf Emulator (Android Studio Standard qemu, Android 7.1, x86-64) Ich bin nicht immer Standort auf meiner App. onConnected heißt, ich kann sogar den letzten Standort lesen, obwohl ich keine Location-Updates requestLocationUpdates ( requestLocationUpdates completion requestLocationUpdates called).

Ich habe:

  • Hinzugefügt <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> manifestieren (zusätzlich zu groben und feinen Standort).
  • Versuchte, die Einstellungen von Google-Standort auf Emulator zu ändern (hohe Genauigkeit, Batteriesparen, nur Gerät)
  • Versuchte Lage von Emulator's GUI.
  • Versuchte Drehen Emulator "Option erkannten ADB-Standort" ein- und ausschalten.
  • Versuchte adb -s emulator-5555 emu geo fix 12.34 56.78 (Befehl funktioniert, lesen Sie weiter, um zu sehen, warum)

Ich kann immer noch nicht meine App bekommen, um ein Standort-Update zu bekommen. Ich habe die eingebauten Google Maps des Emulators ausprobiert und es bekommst Standortaktualisierungen perfekt, ich sehe die aktuelle Position auf der Karte sofort ändern, wenn ich verschiedene Koordinaten durch geo fixiere.

Aber meine App ist völlig unbewusst von Standortaktualisierungen. Ich habe versucht, mindestens 2 Minuten (mein Ortsanforderungsintervall) zu warten, bevor du noch eine andere Koordinate schickst. Was mache ich falsch?

  • Erhalten Sie Standortnamen aus abgerufenen Koordinaten
  • Standortkarte Absturz in OnePlus Ein Gerät
  • Probleme mit android.location.geocoder
  • Android Mock Ort auf Gerät?
  • Holen Sie sich Cell Tower Locations - Android
  • Senden Sie Benachrichtigungen, die auf dem Benutzerstandort basieren
  • Android-Anbietern - GPS oder Netzwerkanbieter?
  • Wie finde ich User Location mit Zellturm?
  • One Solution collect form web for “Android-App kann nicht auf den Standort auf Emulator mit FusedLocationApi zugreifen”

    Ich habe das gleiche Problem auf dem Emulator. Das einzige Update, das ich gefunden habe, ist, PRIORITY_HIGH_ACCURACY zu benutzen.

    Erläuterung: Es ist die einzige Option, die Androide dazu zwingt, den GPS-Chip einzuschalten (virtueller Chip im Fall des Emulators). Auf einem echten Gerät ist dies kein Problem, denn das Telefon kann Zellempfang und Wifi benutzen, um einen ungefähren Ort herauszufinden. Auf dem Emulator gibt es keinen Zellempfang und das WiFi ist als nur eine Netzwerkverbindung abstrahiert. So kann der Emulator das GPS nur für den Standort nutzen.

    Wenn Sie wirklich nicht PRIORITY_HIGH_ACCURACY in Ihrer aktuellen Anwendung verwenden möchten, können Sie für die FusedLocationApi mit der Genauigkeit auf PRIORITY_HIGH_ACCURACY erstellen (oder eine Beispielanwendung finden). Führen Sie das aus, bevor Sie Ihre aktuelle App ausführen (PRIORITY_BALANCED_POWER_ACCURACY) und es wird ein letzter bekannter Ort zur Verfügung stehen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.