Ist es möglich, den aktuellen Standort des Benutzers ohne GPS oder Internet abzurufen? Ich meine mit Hilfe des Mobilfunkanbieters.
android
geolocation
gps
android-gps
Prabhu M.
quelle
quelle
Antworten:
Was Sie tun möchten, ist die Position mit dem
LocationManager.NETWORK_PROVIDER
anstelle von zu erhaltenLocationManager.GPS_PROVIDER
. DasNETWORK_PROVIDER
wird auf dem GSM oder WLAN gelöst, je nachdem, was jemals verfügbar ist. Bei ausgeschaltetem WLAN wird natürlich GSM verwendet. Beachten Sie, dass die Nutzung des Mobilfunknetzes im Grunde genommen auf 500 m genau ist.http://developer.android.com/guide/topics/location/obtaining-user-location.html enthält einige wirklich gute Informationen und Beispielcode.
Fügen Sie Folgendes hinzu, nachdem Sie mit dem größten Teil des Codes fertig sind
OnCreate()
:Sie können die
LocationListener
Klasse auch von Ihrer Aktivität implementieren lassen und somitonLocationChanged()
in Ihrer Aktivität implementieren .quelle
Indem
getLastKnownLocation
Sie das erhalten, initiieren Sie selbst keine Korrektur.Beachten Sie, dass dies den Anbieter starten könnte , aber wenn der Benutzer jemals zuvor einen Standort erhalten hat, denke ich nicht, dass dies der Fall sein wird. Die Dokumente sind dazu nicht wirklich klar.
Laut den Dokumenten getLastKnownLocation:
Hier ist ein kurzer Ausschnitt:
Sie müssen auch eine neue Berechtigung hinzufügen
AndroidManifest.xml
quelle
PASSIVE_PROVIDER
,NETWORK_PROVIDER
undGPS_PROVIDER
.quelle
Nein, Sie können derzeit keinen Standort ermitteln, ohne GPS oder Internet zu verwenden.
Auf WiFi, Mobilfunk oder Bluetooth basierende Ortungstechniken funktionieren mithilfe einer großen Datenbank, die ständig aktualisiert wird. Ein Gerät sucht nach Sender-IDs und sendet diese dann in einer Abfrage über das Internet an einen Dienst wie Google, Apple oder Skyhook. Dieser Dienst antwortet mit einem Standort, der auf früheren drahtlosen Umfragen von bekannten Standorten basiert. Ohne Internetzugang müssen Sie eine lokale Kopie einer solchen Datenbank haben und diese auf dem neuesten Stand halten. Für den globalen Gebrauch ist dies sehr unpraktisch.
Theoretisch könnte ein Mobilfunkanbieter nur einen lokalen Datendienst, jedoch keinen Zugang zum Internet bereitstellen und dann Standortanfragen von Mobilgeräten beantworten. Mobilfunkanbieter tun dies nicht. Niemand möchte für diese Art von eingeschränktem Datenzugriff bezahlen. Wenn Sie einen Datendienst über Ihren Mobilfunkanbieter haben, haben Sie Internetzugang.
Kurz gesagt, für die Verwendung von LocationManager.NETWORK_PROVIDER oder android.hardware.location.network zum Abrufen des Standorts muss das Internet verwendet werden.
Wenn Sie die letzte bekannte Position verwenden möchten, müssen Sie vor kurzem über GPS- oder Internetzugang verfügen. Wenn Sie gerade Internet hatten, können Sie vermutlich Ihre Position oder Einstellungen anpassen, um wieder Internet zu bekommen. Wenn Ihr Gerät keinen GPS- oder Internetzugang hat, hilft Ihnen die letzte bekannte Positionsfunktion nicht weiter.
Ohne GPS oder Internet könnten Sie:
quelle
Hier ist es möglich, den aktuellen Standort des Benutzers ohne Verwendung von GPS und Netzwerkanbieter abzurufen.
1.
Convert cellLocation to real location (Latitude and Longitude), using "http://www.google.com/glm/mmap"
2. Klicken Sie hier als Referenz
quelle
Haben Sie einen Blick auf Google Maps Geolocation Api geworfen? Google Map Geolocation
Dies ist einfach RestApi, Sie benötigen nur POST eine Anfrage, der Service wird einen Ort mit Genauigkeit in Metern zurückgeben.
quelle
Es scheint möglich zu sein, ein Smartphone ohne GPS zu verfolgen.
Quellen:
Primär: "PinMe: Verfolgung eines Smartphone-Benutzers auf der ganzen Welt"
Sekundär: "So verfolgen Sie ein Mobiltelefon ohne GPS - oder ohne Zustimmung"
Ich habe noch keinen Link zum endgültigen Code des Teams gefunden. Wenn ich das tue, werde ich posten, wenn ein anderer dies nicht getan hat.
quelle
Sie können dazu TelephonyManager verwenden.
quelle