Standortaktualisierungen funktionieren nicht im Innenbereich, wie von den Fusion Location Provider-APIs behauptet

9

Problem:

Standortaktualisierungen funktionieren nicht im Innenbereich, wie von APIs des Fusion Location Providers behauptet.

Was ist passiert:

  1. Ich habe versucht, die neueste Standort-API zu implementieren, um Ortsaktualisierungen mithilfe von LocationClient in meiner Android App zu erhalten.
  2. Meine Android-App funktioniert ohne Probleme, während ich im Freien teste.
  3. Aber beim Testen in Innenräumen (innerhalb eines Gebäudes) werden keine Standortaktualisierungen durchgeführt.

Erwartetes Verhalten:

Gemäß den neuen APIs erwarte ich, dass ich einen ungefähren Standort in der Nähe des Gebäudes bekomme, während ich mich in Gebäuden befinde (da GPS das Satellitensignal für die genaue Lokalisierung nicht findet).

Ich sehe, dass neueste Google Maps Android-App im Innenbereich mit geschätzten Standort funktioniert.

Frage:

Was muss ich sonst noch beachten, wenn ich neue Standort-APIs verwende, um die Standortaktualisierung in das Gebäude zu bringen (ein genauer Standort ist nicht erforderlich, geringe Genauigkeit ist auch in Ordnung).

Ich implementiere die Android App mit Android 4.2.2 Version APIs. Ich teste auf HTC One X (OS v 4.1.1)

Im Folgenden finden Sie den Android-Code, den ich mithilfe neuer APIs für Standortaktualisierungen verwendet habe:

Schritt 1:

%Vor%

Schritt 2:

%Vor%

Schritt3: innerhalb onStart() Methode - unter Zeile wird hinzugefügt:

%Vor%

Step4: in onConnected() method - unterhalb der Zeile wird hinzugefügt:

%Vor%

Schritt5: innerhalb onLocationChanged() Methode - auf Standortaktualisierungen hören. Diese Methode wird beim Testen von Innenseiten nicht aufgerufen. Diese Methode wird nur aufgerufen, wenn das GPS-Signal gefunden wird.

%Vor%

Zuletzt hinzugefügt unter Berechtigungen in Android Manifest:

%Vor%     
talasila 28.05.2013, 21:32
quelle

4 Antworten

0

Nach langem Testen und Debuggen auf HTC One X (4.1.1) habe ich mich entschieden, dieselben Testfälle auf jedem anderen Telefonmodell auszuprobieren. Glücklicherweise funktionierte meine App beim Testen mit dem Samsung S3 (4.1.1) meines Freundes auch drinnen. Zur gleichen Zeit und am gleichen Ort, wenn ich mit meinem HTC One X getestet habe, bekomme ich keinen Standort drinnen. Beide Telefone haben dieselben Einstellungen (WiFi / GPS / Mobiles Netzwerk alle aktiviert).

Um zu bestätigen, dass dies ein Problem mit einem bestimmten Gerät ist, habe ich viele Tests innerhalb des Gebäudes an verschiedenen Ecken mit meiner App durchgeführt und sehe das gleiche Problem auf meinem HTC an allen Innenstandorten (aber an denselben Standorten erhält S3 den Innenstandort) .

    
talasila 29.05.2013, 20:54
quelle
2

Basierend auf Ihren Snippets sieht Ihr Code für den Empfang von Indoor-Standorten gut aus.

Versuchen Sie, einen Speicherabzug auszuführen, während Ihre App Standorte anfordert und Sie sich in Gebäuden befinden (in der Erwartung, Standorte zu erhalten, aber nicht): adb shell dumpsys Aktivitätsdienst com.google.android.location.internal.GoogleLocationManagerService

Können Sie die Ausgabe hier veröffentlichen?

Können Sie überprüfen, ob Einstellungen- & gt; WiFi aktiviert ist und dass Einstellungen- & gt; Standort-Zugriff- & gt; Wi-Fi & amp; Der Standort des mobilen Netzwerks ist aktiviert (beide sind für den Standort in Innenräumen erforderlich).

Hat Ihr Telefon eine SIM-Karte? Dies würde die vom Mobilfunkmast abgeleiteten Standorte ermöglichen, wenn WLAN nicht verfügbar ist.

Schließlich haben Sie gesagt, dass Google Maps Ihnen einen Standort im selben Gebäude bietet. Was ist die ungefähre Größe des Genauigkeitskreises (d. H. Liegt er näher bei 20 oder 100 Metern)?

    
David 28.05.2013 23:26
quelle
1

Tinku! Ich habe das gleiche Problem mit meinen Galaxy Nexus- und Fusion Location Provider-APIs.
Meine Entscheidung setzt die Priorität für LocationRequest object auf LocationRequest.PRIORITY_LOW_POWER

%Vor%


Für mich funktioniert es im Innenbereich (geringe Genauigkeit) und im Freien (hohe Genauigkeit). Hoffe es wird dir helfen.

    
akaoni702 15.08.2013 16:10
quelle
0

Sind Sie sicher, dass Sie den Client nicht trennen? Sobald Sie den LocationClient trennen, wird die aktuelle Standortaktualisierungsanforderung nicht mehr angezeigt.

Die Code-Snippets selbst sind nicht eine komplette App. Die Beispielanwendung ist jedoch eine vollständig funktionierende App. Der Zweck der Snippets besteht darin, Ihnen die wichtigsten Schritte zu zeigen, die Sie ausschneiden und einfügen können. Die Beispiel-App bietet mehr Material.

    
Joe Malin 28.05.2013 23:37
quelle