Utilice Android GPS para detectar y conectarse con otros teléfonos

Así que le pregunté algo similar ayer y recibió una respuesta a mi pregunta, sin embargo, realmente no creo que lo pregunté correctamente y por lo tanto no recibió la información exacta que necesitaba.

Estoy en busca de una API, código abierto, o incluso una manera que alguien más ha logrado esto en el Android. Estoy creando una aplicación que necesita encontrar todos los demás dispositivos Android dentro de un radio especificado. Por ejemplo, cuando abre su aplicación Google Maps para Android y busca "Restaurantes [ZipCode]", utiliza un radio modificado desde su código postal y encuentra todos esos lugares. El GPS obtiene su ubicación y mapas utiliza esa información para encontrar restaurantes dentro de una dirección cercana a la que pasó en la ubicación.

En cambio, quiero poder usar el GPS para encontrar mi ubicación (como puede ahora fácilmente), pero en lugar de encontrar cosas en un mapa (que ya está incorporado), quiero poder encontrar otro GPS habilitado para Android Teléfonos móviles. Tengo que tienen que ser la radiodifusión de su señal GPS al mismo tiempo, así (ya que no tienen sus datos almacenados con algún tipo de base de datos central como un restaurante). Sin embargo, no sólo quiero encontrar estos teléfonos, quiero enviar / recibir datos de estos teléfonos (con permisos correctos obviamente).

Ahora, he encontrado cosas como la API Bump. Sin embargo, BUMP utiliza los sensores de teléfonos para estimular esta búsqueda. Así que, básicamente, si usted "golpea" su teléfono con otro y tiene la aplicación en ejecución, entonces seguir adelante y utilizar el GPS para encontrar la ubicación del otro teléfono que acaba de chocar con e intercambiar datos entre ellos. Esto es como EXACTAMENTE lo que quiero hacer sin embargo en su API, no proporcionan la funcionalidad apenas decir, "ey, me dan todos los teléfonos dentro de una milla de mí."

También he encontrado API que pueden hacer exactamente lo que necesito, pero tienen que estar en el mismo rango de Bluetooth o en la misma red Wi-Fi, que no se adapta a lo que necesito en absoluto.

¿Ustedes saben de algo que pueda caber exactamente lo que necesito que ya existe? O una manera de modificar quizás la API Bump (si lo has hecho), para no tener que usar los sensores del teléfono y encontrar información del teléfono directamente a través del GPS para los teléfonos que te rodean? ¿O hay algo que existe sobre una red 3g / 4g en lugar de sólo wi-fi / Bluetooth?

Gracias chicos.

Para hacer esto vía GPS, usted tendría que tener todos los teléfonos que colocaban con frecuencia sus localizaciones a un servidor de la red, que podría entonces informarlos de otros cercanos.

Huelga decir que esto sería opt-in sólo!

Y puede tener consecuencias negativas para la vida de la batería, a menos que lo hagas actualizar con poca frecuencia, lo que puede limitar su usabilidad.

La ventaja de tener una acción de activación explícita a ambos teléfonos es que sólo necesitan consultar el GPS e informar al servidor para encontrarse por ubicación cuando ambos han sido activados.

En lugar de ubicar frecuentemente ubicaciones en un servidor externo, ¿no podría el GPS realizar otras cosas transmitiendo una señal GPS en un momento muy específico y enviar / recibir datos de ellos?

Las únicas cosas que "transmiten una señal GPS" son los satélites.

Nos gustaría lograr esto sin el uso de un servidor externo.

No tienes más remedio que usar un servidor externo, te guste o no, tanto para el descubrimiento como para la comunicación posterior.

¿Ustedes saben de algo que pueda caber exactamente lo que necesito que ya existe?

Foursquare , Google Latitude , Yahoo Fire Eagle , y así sucesivamente.

Usted probablemente tendría que crear su propia aplicación – entonces usted podría hacer este lado del servidor y empujar las cosas. Si estás intentando enviar datos a teléfonos Android aleatorios, no tienes suerte. La mayoría de la gente no va a querer esto, y probablemente no va a tener las aplicaciones necesarias para recibir y entender. Con la red Bluetooth necesitaría autorización, y la mayoría de los Androids no tienen la capacidad de transferir datos aleatorios por Bluetooth fuera de la caja (aunque ciertamente puede obtener software para hacerlo).

Honestamente, el malware y el seguimiento son las razones de esto realmente no es posible, pero incluso si no lo eran, todavía se necesita una aplicación en los dispositivos receptores que entienden lo que está enviando. Y si usted está ampliamente extendido lo suficiente, probablemente querría enviarlo a un servidor para diseminar de todos modos (para los costos de transmisión de ancho de banda por lo menos).

Desarrolle una aplicación de servidor en la que acceda su aplicación de Android. Envíe la ubicación GPS cada vez que el teléfono se mueva a una distancia actual. Envíe una solicitud de consulta al servidor para preguntarle si hay otros teléfonos en el rango, o pida al servidor que informe al teléfono de un nuevo dispositivo en el rango.

Puede tener problemas de escalabilidad del servidor, por lo que es algo en lo que pensar. También, esto sería un drenaje grande de la batería, y tan sus usuarios no pueden ser demasiado afilados funcionarlo, para no mencionar el elemento de la aislamiento.

Tienes que repensar lo que estás tratando de hacer. Los dispositivos Android no "transmiten" ninguna señal GPS, sino que son simplemente receptores, con señales de satélites. Así que el teléfono puede obtener fácilmente una ubicación para sí mismo, pero la ubicación de otros dispositivos es muy, la información muy privada. Para tener acceso a la ubicación de otros teléfonos, es necesario que esté en la misma red que ellos (bluetooth, wifi), o los necesita para usar un servicio basado en servidor para enviar ubicaciones, como Google Latitude.

Sería muy improbable que firmara un servicio como ese. Mi ubicación es muy privada, lo comparto con algunas personas, pero no puedo parecer que lo comparto abiertamente con una aplicación, sin una muy, muy buena razón.

Me parece que es necesario crear una aplicación basada en servidor, por ejemplo, en Google App Engine, que las personas se registren y acepten que su ubicación se envíe a ese servidor, de modo que otros teléfonos que ejecuten la aplicación puedan acceder a esa información desde la central almacenar.

Todos los comentarios de otras personas sobre no ser capaz de captar la señal de otros teléfonos son correctos. No obstante, existe un sistema alternativo completamente diferente en los servicios de localización basados ​​en red. Este es un modelo en el que solicita a una red de operadores la localización de un teléfono, que la red de operadores necesita para realizar un seguimiento del servicio 911 mejorado en los Estados Unidos. (Desconozco cuán ampliamente está implementado en otras áreas y cuántas Servicios que necesitaría usar para cubrir otras áreas).

Sin embargo, es potencialmente una ruta muy costosa. Y no sólo funcionará automáticamente para todos los teléfonos, creo que los usuarios tendrán que ser optó por compartir la ubicación con su servicio. Así es como los servicios como Loopt inicialmente habían configurado su información de ubicación para que pudiera ser recogida de forma pasiva sin afectar negativamente la duración de la batería del teléfono. Hay algunos servicios de terceros que están al frente de un servicio de cross-carrier como Location Labs:

http://locationlabs.com/

Además de los servicios de localización de terceros como Skyhook Wireless, que podrían ser capaces de obtener alguna información del tipo (aunque no creo que lo que estás buscando mapas a cualquiera de sus API existentes)

La pregunta ahora tiene una solución muy simple. Todo lo que tienes que hacer es configurar un Geofence y controlarlo para la entrada y salida de los usuarios. Geofence le permite elegir una geolocalización y establecer un círculo de radio deseado a su alrededor. Cuando alguien entra o sale de la ubicación puede recibir notificaciones y realizar la acción deseada.

Visite este enlace para obtener más detalles sobre cómo usar esto en Android.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.