Verwenden Sie Android GPS, um andere Telefone zu erkennen und mit ihnen zu verbinden

8

Also habe ich gestern etwas Ähnliches gefragt und habe eine Antwort auf meine Frage erhalten, aber ich glaube nicht wirklich, dass ich sie richtig gestellt habe und deshalb nicht die genauen Informationen erhalten habe, die ich brauchte.

Ich bin auf der Suche nach einer API, irgendeinem Open-Source-Code oder einfach nur nach einem Weg, den jemand anderes auf Android erreicht hat. Ich mache eine App, die alle anderen Android-Geräte innerhalb eines bestimmten Radius finden muss. Wenn Sie zum Beispiel Ihre Android Google Maps App öffnen und nach "Restaurants [ZipCode]" suchen, wird ein von Ihrer Postleitzahl abweichender Radius verwendet, und Sie finden alle diese Orte. Das GPS erhält Ihren Standort, und Karten verwenden diese Informationen, um Restaurants innerhalb einer Adresse zu finden, die in der Nähe des Standorts liegt.

Stattdessen möchte ich in der Lage sein, das GPS zu verwenden, um meinen Standort zu finden (wie es jetzt leicht möglich ist), aber anstatt Dinge auf einer Karte (die bereits eingebaut ist) zu finden, möchte ich andere finden können GPS-fähige Android-Telefone. Ich habe gehört, dass sie gleichzeitig ihr GPS-Signal senden müssen (da sie ihre Daten nicht in einer zentralen Datenbank gespeichert haben, wie es ein Restaurant tun würde). Aber ich möchte diese Telefone nicht nur finden, ich möchte Daten von diesen Telefonen senden / empfangen (natürlich mit korrekten Rechten).

Nun habe ich Dinge wie die Bump-API gefunden. BUMP verwendet jedoch die Telefonsensoren, um diese Suche auszulösen. Also, im Grunde, wenn Sie Ihr Telefon mit einem anderen "stoßen" und die App läuft, wird es dann voran gehen und GPS verwenden, um den Standort des anderen Telefons zu finden, mit dem Sie gerade gestoßen sind und Daten zwischen ihnen austauschen. Das ist genau GENAU, was ich aber in ihrer API machen möchte, sie bieten nicht die Funktionalität, nur zu sagen: "Hey, gib mir alle Telefone innerhalb einer Meile von mir."

Ich habe auch APIs gefunden, die genau das tun können, was ich brauche, aber sie müssen sich in der gleichen Bluetooth-Reichweite oder im selben WLAN-Netzwerk befinden, was nicht zu dem passt, was ich brauche.

Kennst du etwas, das genau zu dem passt, was ich brauche, das es schon gibt? Oder eine Möglichkeit, die Bump API zu modifizieren (wenn Sie es getan haben), die Telefonsensoren nicht zu verwenden und Telefoninformationen direkt über GPS nach Telefonen in Ihrer Nähe zu suchen? Oder gibt es etwas, das über ein 3g / 4g Netzwerk statt nur Wi-Fi / Bluetooth existiert?

Danke Leute.

    
slandau 04.02.2011, 17:59
quelle

7 Antworten

2

Um dies über GPS zu tun, müssten alle Telefone ihre Standorte häufig auf einem Netzwerkserver veröffentlichen, der sie dann über andere in der Nähe informieren könnte.

Es ist unnötig zu sagen, dass dies nur ein Opt-In wäre!

Und es kann negative Auswirkungen auf die Akkulaufzeit haben, es sei denn, Sie machen es selten zu aktualisieren, was die Verwendbarkeit einschränken kann.

Der Vorteil einer expliziten Auslöseraktion für beide Telefone besteht darin, dass sie nur das GPS abfragen und den Server informieren müssen, dass sie sich gegenseitig nach Standort finden, wenn beide ausgelöst wurden.

    
Chris Stratton 04.02.2011, 18:06
quelle
5
  

Statt häufig Orte auf einem externen Server zu veröffentlichen, könnte das GPS andere Dinge nicht realisieren, die ein GPS-Signal zu einem bestimmten Zeitpunkt senden und Daten von ihnen senden / empfangen?

Die einzigen Dinge, die ein GPS-Signal aussenden, sind Satelliten.

  

Wir möchten dies ohne die Verwendung eines externen Servers erreichen.

Sie haben keine andere Wahl als einen externen Server zu verwenden, ob Sie wollen oder nicht, sowohl für die Erkennung als auch für die spätere Kommunikation.

  Wissen Sie etwas, das genau zu dem passt, was ich brauche, das bereits existiert?

Foursquare , Google Latitude , Yahoo Fire Eagle und so weiter.

    
CommonsWare 04.02.2011 18:30
quelle
1

Sie müssten wahrscheinlich Ihre eigene Anwendung erstellen - dann könnten Sie diese Server-Seite machen und Dinge anschieben. Wenn Sie versuchen, Daten auf beliebige Android-Telefone zu übertragen, haben Sie kein Glück. Die meisten Leute werden das nicht wollen und werden wahrscheinlich nicht die Apps haben, um sie zu empfangen und zu verstehen. Mit Bluetooth-Netzwerk benötigen Sie eine Autorisierung, und die meisten Android-Geräte haben keine Möglichkeit, zufällige Daten per Bluetooth aus der Box zu übertragen (obwohl Sie sicherlich Software dafür bekommen können).

Ehrlich gesagt, Malware und Tracking sind die Gründe, warum dies wirklich nicht möglich ist, aber selbst wenn dies nicht der Fall wäre, würden Sie immer noch eine Anwendung auf den empfangenden Geräten benötigen, die verstehen, was Sie senden. Und wenn Sie weit genug verbreitet sind, möchten Sie es wahrscheinlich an einen Server senden, um es trotzdem zu verbreiten (für die Bandbreite der sendenden Telefone zumindest).

    
Chris K 04.02.2011 18:07
quelle
1

Entwickeln Sie eine Serveranwendung, in der sich Ihre Android App anmeldet. Senden Sie den GPS-Standort jedes Mal, wenn sich das Telefon über eine aktuelle Entfernung bewegt. Senden Sie entweder eine Abfrageanforderung an den Server, um sie zu fragen, ob andere Telefone in Reichweite sind, oder veranlassen Sie den Server, das Telefon über ein neues Gerät in Reichweite zu informieren.

Sie können Probleme mit der Server-Skalierbarkeit bekommen, worüber Sie nachdenken sollten. Außerdem wäre dies ein großer Batterieverbrauch, und daher sind Ihre Benutzer möglicherweise nicht allzu scharf darauf, es auszuführen, ganz zu schweigen von dem Datenschutzelement.

    
FlappySocks 04.02.2011 18:09
quelle
1

Sie müssen überdenken, was Sie zu tun versuchen. Android-Geräte "übertragen" kein GPS-Signal, sie sind einfach Empfänger mit Signalen von Satelliten. So kann das Telefon leicht einen Standort für sich selbst finden, aber der Standort anderer Geräte ist sehr, sehr private Information. Um Zugriff auf den Standort für andere Telefone zu erhalten, müssen Sie sich entweder im selben Netzwerk befinden (bluetooth, wifi), oder Sie benötigen einen serverbasierten Dienst, um Standorte wie Google Latitude zu senden.

Es wäre sehr unwahrscheinlich, dass ich mich für einen solchen Dienst anmelden würde. Mein Standort ist sehr privat, ich teile ihn mit einigen Leuten, aber ich kann mich selbst nicht offen mit einer App teilen, ohne einen sehr, sehr guten Grund.

Es scheint mir, dass Sie eine serverbasierte Anwendung erstellen müssen, z. Melden Sie sich in Google App Engine an und stimmen Sie zu, dass der Standort an diesen Server gesendet wird. Auf anderen Telefonen, auf denen Ihre App ausgeführt wird, können diese Informationen dann vom zentralen Speicher aus abgerufen werden.

    
Ollie C 04.02.2011 18:12
quelle
1

Die Frage hat jetzt eine sehr einfache Lösung. Sie müssen lediglich einen Geofence einrichten und ihn für das Ein- und Austreten von Benutzern überwachen. Mit Geofence können Sie eine geografische Position auswählen und einen Kreis mit dem gewünschten Radius festlegen. Wenn jemand den Standort betritt oder verlässt, können Sie benachrichtigt werden und die gewünschte Aktion ausführen.

Weitere Informationen zur Verwendung in Android finden Sie unter .

    
chinmish 10.07.2017 12:47
quelle
0

Alle Kommentare anderer Leute, die nicht in der Lage sind, das Signal von anderen Telefonen aufzunehmen, sind korrekt. In den netzwerkbasierten Ortungsdiensten gibt es jedoch ein völlig anderes alternatives System. Dies ist ein Modell, bei dem Sie ein Mobilfunknetz nach dem Standort eines Mobilteils fragen, das das Betreibernetz für den erweiterten 911-Dienst in den USA verfolgen muss (ich weiß nicht, wie weit es in anderen Bereichen eingesetzt wird und wie viele verschiedene Dienste, die Sie benötigen, um andere Bereiche abzudecken).

Es ist jedoch möglicherweise eine sehr teure Route. Und es wird nicht nur automatisch für alle Mobilteile funktionieren, ich glaube, dass die Benutzer für das Teilen des Standorts mit Ihrem Dienst ausgewählt werden müssen. So haben Dienste wie Loopt ihre Standortinformationen zunächst so eingerichtet, dass sie passiv erfasst werden können, ohne die Akkulaufzeit des Mobilteils zu beeinträchtigen. Es gibt einige Dienste von Drittanbietern, die für einen cross-carrier Service wie Location Labs stehen:

Ссылка

Sowie Drittanbieter-Ortungsdienste wie Skyhook Wireless, die Ihnen vielleicht einige Informationen dieser Art liefern könnten (obwohl ich nicht glaube, dass Sie nach Karten für ihre vorhandenen APIs suchen)

>     
mikerowehl 04.02.2011 20:14
quelle

Tags und Links