2 Stimmen

Woher weiß man, ob der Positionierungsmodus WIFI oder 2G/3G-Mobilfunkmast in Android ist?

Wir wissen, dass es in Android zwei Positionierungsmodi gibt: GPS und Netzwerk. Wenn wir Netzwerk verwenden, kann Android WIFI oder 2G/3G-Mobilfunkmasten zur Positionsbestimmung verwenden. Ohne GPS können wir einfach LocationManager.NETWORK_PROVIDER verwenden, um die Standortdaten zu erhalten. Aber wie können wir genau wissen, ob es sich um WIFI oder 2G/3G-Mobilfunk handelt? Android bietet keine separaten Provider für WIFI und Mobilfunkmasten.

Ich habe mir eine Methode überlegt. Aber ich bin nicht sicher, ob sie richtig ist. Bitte überprüfen und kommentieren Sie:

  1. Prüfen Sie, ob ich eine WIFI-Hotspot-Liste erhalten kann. Wenn die Liste nichts enthält, muss der Mobilfunkmast verwendet werden.
  2. Wenn es einige WIFI-Hotspots gibt und die Genauigkeit hoch ist (<=100m), dann wird wahrscheinlich WIFI verwendet. Wenn die Genauigkeit niedrig ist, wird dann immer noch ein Mobilfunkmast verwendet?

Nach meinem Verständnis ist die Genauigkeit der WIFI-Ortung relativ hoch. Aber was ist der normale Bereich der Genauigkeit dafür? Eine weitere Frage, verwendet Android WIFI und Zelle Turm zur gleichen Zeit? Wenn es tut, dann in meiner Anwendung, ich kann denken, es verwenden WIFI, nicht Zelle Turm.

Danke!

5voto

Kung Foo Punkte 151

Es gibt tatsächlich eine Möglichkeit, dies zu tun. Sie ist nur nicht gut dokumentiert und kann sich daher auch ohne Ankündigung ändern. Sie können die verwendete Standortschätzungsmethode über die zusätzlichen Daten des Netzbetreibers zur Standortaktualisierung erhalten.

Bundle extras = location.getExtras();
if (extras.containsKey("networkLocationType")) {
    String type = extras.getString("networkLocationType");
    if (type .equals("cell")) {
        // Cell (2G/3G/LTE) is used.
    } else if (type .equals("wifi")) {
        // Wi-Fi is used.
    }
}

3voto

Stéphane Punkte 6770

Das ist richtig, aber Android gibt nicht ausdrücklich an, wie der Netzstandort berechnet wird. Das Prinzip des Netzbetreibers ist es, alle relevanten Daten auf dem Gerät zu sammeln und sie dann an die Google-Server zu senden, wo Ihr Standort berechnet und an Sie zurückgeschickt wird. Ich bin mir nicht sicher, aber die Netzortung könnte auch die Beschleunigungsmesser-/Kreisel-/Kompassdaten verwenden, um die Genauigkeit der Ortung zu verbessern, insbesondere wenn Sie Ihren Standort kontinuierlich berechnen. Ich glaube also, dass es gleichzeitig Informationen von Mobilfunkmasten und Wifi nutzen kann.

Ihre Genauigkeitsmethode sollte in den meisten Fällen funktionieren, ist aber nicht 100 % zuverlässig.

Eine andere Möglichkeit besteht darin, das WLAN auszuschalten, eine erste Standortbestimmung zu berechnen, es dann wieder einzuschalten und einen weiteren Versuch zu unternehmen. Durch den Vergleich der beiden Standorte und ihrer geschätzten Genauigkeit können Sie wahrscheinlich den Einfluss des WLANs auf die Ortungsmaschine an Ihrem aktuellen Standort abschätzen.

Nur so aus Neugier: Wozu brauchen Sie das?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X