¿Cómo calcular la distancia entre dos dispositivos Android? (Bluetooth preferido)
El objetivo no es tener la distancia real. Es algo más sencillo.
El objetivo es comprobar si otro dispositivo está muy cerca . Verdadero o falso. Digamos que 10 o 15 cms está cerca para que nuestro cheque sea verdadero y cualquier dispositivo más lejos falla el cheque y es falso.
Mi primer enfoque fue usar el método fetchUuidsWithSdp()
pero falló!
La latencia parecía la misma si los dispositivos que un par de cms de distancia o en el otro extremo de una gran sala!
- ¿Cómo ser notificado cuando un compañero ya no está disponible en la gama Wi-Fi Direct?
- gama de distancias en las que trabaja directamente Wi-Fi
- comunicación directa rápida entre ios y android
- Descubrimiento del servicio directo WiFi de Android y duración de la batería
- ¿Es posible conectar dos o más grupos WiFi Direct?
Cualquier solución incluso sin bluetooth es aceptable. Por ejemplo, estoy totalmente familiarizado con el protocolo wifi p2p directo . Tal vez podría haber algo allí útil para tener una estimación aproximada de la distancia.
Edit: Estoy leyendo sobre el Indicador de Fuerza de la Señal Recibida ( RSSI ). Esto podría ser utilizado para nuestro caso particular, una estimación aproximada de la distancia entre dispositivos. Pero tal vez podría haber algo que combinar para mejorar la precisión.
Edit: Puse la respuesta de Ralgha a la prueba. Hice establecido una conexión y tenía un protocolo menor al ping-pong entre los dispositivos.
Cuando ping-ponged con 1 byte la latencia promedio era 22.6000 msec cuando muy cerca y 22.6087 msec cuando en la otra esquina de la habitación.
Cuando ping-ponged con 1024 bytes de latencia promedio fue de 40.3173 ms cuando muy cerca y aún más pequeña, 32.3138 ms, cuando en la otra esquina de la habitación.
Después de todo, de hecho, la latencia no lleva ninguna información sobre la distancia !
¡Gracias!
- Intención de abrir la configuración Wi-Fi Direct
- Problemas con la API Wi-Fi Direct de android: mChannel = mManager.initialize ()
- Android renombra el nombre del dispositivo para wifi-direct
- Android y WiFi Direct - Problemas de conexión
- Android Wi-Fi Direct leer la intensidad de la señal rssi
- Conexión directa wifi-end a peer en Android?
- Android Wi-Fi Direct: El objeto WifiP2pInfo transmitido a la devolución de llamada onConnectionInfoAvailable tiene propiedad null groupOwnerAddress
- Olvidando las conexiones directas WiFi anteriores
Puede medir la distancia con sonido .
La única manera factible de hacerlo que puedo pensar es con NFC. Para utilizar Bluetooth o Wi-Fi que tendría que hacerlo a través de la fuerza de la señal, pero cada transmisor es diferente para que no sería confiable en absoluto.
La latencia es bastante inútil ya que las ondas de radio viajan a la velocidad de la luz y la diferencia de tiempo entre viajar una pulgada y una milla es esencialmente cero. Para medir esa diferencia necesitarías una resolución mucho mayor que la que tienes en un teléfono.
Usted no está especificando el objetivo de esta detección de distancia, pero si pudiera agregar algunos requisitos adicionales a eso (es decir, la orientación del teléfono y la luz del flash), un enfoque totalmente diferente podría probablemente ser utilizado.
Si ambos dispositivos están orientados de manera que ambas cámaras se enfrenten, la luz del flash podría utilizarse para validar el teléfono y la distancia correctos. El tamaño de la mancha blanca generada en la imagen de la cámara disminuye rápidamente con la distancia y una secuencia de flash específica podría diferenciar entre la luz del flash del otro teléfono y otras fuentes de luz.
Esto podría requerir algunos ajustes para trabajar al aire libre, ya que para la misma distancia el tamaño del punto será mucho menor …
Saludos.
He mirado en el bluetooth que coloca y istn "absolutamente tan fácil como detectando la fuerza de la señal. Para obtener resultados realmente precisos también es necesario tener en cuenta los tipos de teléfono de su uso, el tipo de batería y la condición de la batería. También hay que tener en cuenta el ambiente y cómo puede afectar la intensidad de la señal, y también los obstáculos que pueden interferir con la señal, como personas, paredes, tablas, etc.
Para determinar la distancia también necesitará utilizar técnicas de triangulación para determinar la posición de un móvil. También puede configurar un número de transmisores en su entorno y medir en contra de cada uno. Conociendo las posiciones de estos transmisores, puede determinar la posición del teléfono.
Sin embargo, las intensidades de la señal varían y usted tendrá que hacer una gran cantidad de calibración. Hay una serie de artículos científicos que dan una idea de los algoritmos necesarios. También hay un par de empresas que ofrecen esto como un servicio, utilizado en centros comerciales, museos, etc
Dicho esto, si usted puede obtener la fuerza de la señal, entonces usted debe ser capaz de elaborar un resultado básico cerca o lejos, simplemente no será totalmente precisa, y en este caso, todavía creo que tener un número de transmisores todavía ayudaría a un mucho.
Papel, algunas de las trampas PDF (descargar), otro documento
Hay montones de papeles que he leído del posicionamiento del googling del bluetooth que le dará algunos indicadores.
- Configuración de JAVA_HOME en SDK de Android
- Cómo cambiar programáticamente el motor predeterminado TTS