Detect Beacon (Eddystone) con la API cercana de Android

Estoy tratando de detectar faros a mi alrededor, pero con la API cercana, no puedo encontrarlos.

Estoy utilizando este método para detectar dispositivos cercanos:

public void startDiscovery(String serviceId, final OnDiscoveryListener l) { Nearby.Connections.startDiscovery(googleApiClient, serviceId, Connections.DURATION_INDEFINITE, new Connections.EndpointDiscoveryListener() { @Override public void onEndpointFound(String endpointId, String deviceId, String serviceId, String endpointName) { if (l != null) { l.onEndpointFound(endpointId, deviceId, serviceId, endpointName); } } @Override public void onEndpointLost(String s) { if (l != null) { l.onEndpointLost(s); } } }) .setResultCallback(new ResultCallback<Status>() { @Override public void onResult(Status status) { if (l != null) { l.onResult(status); } } }); } 

El oyente se ve así:

 public interface OnDiscoveryListener { public void onResult(Status status); public void onEndpointFound(String endpointId, String deviceId, String serviceId, String endpointName); public void onEndpointLost(String s); } 

Pero no puedo detectar nada

4 Solutions collect form web for “Detect Beacon (Eddystone) con la API cercana de Android”

Aunque Google anunció el uso del API cercano para detectar balizas a nuestro alrededor:

La API cercana para Android e iOS facilita que las aplicaciones encuentren y se comuniquen con dispositivos y balizas cercanos

Fuente: http://android-developers.blogspot.be/2015/07/lighting-way-with-ble-beacons.html

No pude usar el API cercano para detectar balizas Eddystone. Describiré abajo toda la información que he recolectado durante mi investigación que espera esto podría ahorrar a alguna gente algún tiempo.

Tenía configuración sobre el mismo código que usted para detectar balizas de estimación pero no pude encontrar el identificador de servicio para proporcionar a Nearby.Connections.startDiscovery() para hacerlo detectar mi baliza (traté de usar el beacon UUID y algunos Variantes sin éxito).

He encontrado en el sitio web de Estimote que usted necesita para actualizar el firmware de baliza para poder configurarlo como una baliza de Eddystone: http://developer.estimote.com/eddystone/#configure-estimote-beacons-to-broadcast-eddystone . La mía no fue así que lo hice.

Sin embargo, eso no solucionó mi problema y seguí sin poder detectar el beacon usando el API cercano. Traté de configurarlo como Eddystone-UID y Eddystone-URL y probé varias combinaciones (basadas en la información proporcionada por la aplicación Estimote) como ID de servicio sin éxito.

Una mirada más profunda a la documentación de la API cercana muestra que Google no menciona nada sobre beacons ni Eddystone en su documentación API cercana ( https://developers.google.com/nearby/connections/overview ) y la muestra de Google sobre beacons no es Utilizando la API cercana en absoluto: https://github.com/google/beacon-platform/tree/master/samples/android

Sin embargo, sí mencionan que los Mensajes cercanos permitirán una rica interacción como "edición colaborativa, formación de un grupo, votación o difusión de un recurso ", y pronto se publicará:

Pronto: La API de mensajes cercanos estará disponible en el servicio de Google Play 7.8. Este sitio se actualizará con la documentación completa de la API cuando la nueva versión esté disponible.

Fuente: https://developers.google.com/nearby/

Mi comprensión es que el soporte para balizas estará disponible con Google Play Services 7.8 ya que los beacons están transmitiendo recursos.

Mientras tanto, si todavía desea detectar las balizas Eddystone a su alrededor, puede utilizar el SDK de Android de Estimote: https://github.com/estimote/android-sdk#quick-start-for-eddystone o implementar el mismo Código como ejemplo de Google Beacon Proximity: https://github.com/google/beacon-platform/tree/master/samples/android

Trabajo en la API cercana de Google. El fragmento de código anterior utiliza la API Conexiones cercanas, que en realidad está orientada a diferentes casos de uso. Para trabajar con Eddystone, use la API de mensajes cercanos. A continuación se muestra un ejemplo de cómo usar Mensajes cercanos para suscribirse a la presencia de balizas

Tenga en cuenta que debe asociar primero una carga útil de mensaje con la baliza utilizando la API de baliza de proximidad .

Esto puede sonar como algo extraño – pero intente encenderlo y apagarlo. Una gran cantidad de dispositivos más baratos son realmente malo con el bluetooth y no conectar, pero por alguna razón el encendido y apagado wifi fija por un tiempo.

Yo estaba teniendo un problema similar – todo en mi código era correcto, pero no detectar balizas. Incluso intenté con la aplicación de los fabricantes, y la suya también no podía detectar el faro (pero su versión del iPhone hizo). Apagué mi wifi, luego nuevamente y la aplicación de los fabricantes funcionó y también la mía.

Sí, puede descubrir las balizas Eddystone usando la API cercana. Pero para detectar balizas tienes que usar la Nearby Messages API no la Nearby Connections API , como también menciona @Andrew Bunner.

Para poder detectar las balizas usando NearbyMessagesAPI también tendrá que registrar las balizas con Google primero y configurarlas para que tengan una carga de mensaje asociada con ellas.

Puedes encontrar todos los pasos en mi blog o esta otra respuesta que publiqué.

  • Muestra el teclado virtual cuando el dispositivo está en modo horizontal
  • Método llamado después de la excepción release () no se puede reanudar con la cámara android
  • Esperando la devolución de llamada asincrónica en IntentService de Android
  • SetEntity en HttpDelete
  • ¿Recurso Android no encontrado excepción?
  • Algo falta en mi proyecto de prueba de Android?
  • Galería circular de Android o lista con zoom en y fuera de la opción
  • Error: (23, 17) Error al resolver: junit: junit: 4.12
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.