microlocalización learning funciona datasheet como buy apple core-location ios7 ibeacon

core location - learning - Busque todos los iBeacons y no solo con un UUID específico



learning ibeacon pdf (5)

¿Es posible buscar todos los iBeacons que están cerca? Sé que es posible buscar iBeacons por UUID. Pero quiero encontrar todos los iBeacons cercanos.



Desafortunadamente, en este momento no se puede buscar un iBeacon arbitrario sin conocer primero el valor de la proximidad de la prueba. He intentado escribir directamente en COREBluetooth y, aunque puede descubrir y conectarse a las balizas de transmisión en su área, lo que obtiene es jibberish sin relación con el ULE BLE. Así que ni siquiera puedes confirmar que el periférico al que te has conectado es, de hecho, un iBeacon.

Esto no parece ser una limitación de la especificación BLE, sino que es una limitación impuesta por Apple. También parece que esta limitación no existe para la plataforma Android.

Hasta que se cierre esta brecha, Android tendrá una ventaja significativa sobre iOS en esta área.

No estoy de acuerdo con los comentarios anteriores de que la búsqueda de UUID sería inútil. Por el contrario, si conociera el UUID de la baliza, podría crear un mapa de la baliza / ubicación / tema en la nube y utilizarlo para navegar (suponiendo que la baliza estaba arreglada) utilizando un servicio web. Puede obtener la información de manera multitudinaria para que finalmente una base de datos muy rica de UUID / ubicación de baliza esté disponible para todos los que quieran escribir aplicaciones de ubicación. Quizás es por esto que Apple está ocultando la información; Ellos pueden estar guardando esto para sus propios propósitos.


Los iBeacons son construcciones de más alto nivel que los periféricos BLE normales. De lo que se puede determinar a partir de los documentos de Apple, las balizas están vinculadas a su UUID de servicio. es decir, una familia de balizas es una "región" y usted entra y sale de una región en función del alcance y la visibilidad de una baliza para USTED, no al revés. Desafortunadamente, Apple ha utilizado el término región, que la mayoría de nosotros probablemente asociamos con MapKit, por lo que esto se suma a la confusión general.

Aquí están las malas noticias: solo puede escanear en busca de ProximityUUIDs que usted sabe, no hay un "INDOID" de proximidad comodín. Además, los dispositivos CLBeacon no exponen mucho las tripas de CoreBluetooth de nivel inferior, por lo que si desea encontrar todas las balizas que están cerca de usted, deberá usar CoreBluetooth, buscar periféricos, y luego buscar en las periferia devueltas Y consulta cada uno de ellos para encontrar balizas. Por supuesto, Apple no se ha registrado (con Bluetooth SIG) o (aún) ha publicado las características de iBeacon, por lo que necesitará un detector de BT para realizar una ingeniería inversa de lo que constituye un iBeacon desde cualquier otro dispositivo BLE.


Un iBeacon es una región, y tiene como propiedad definitoria el UUID. Por lo tanto, solo puede buscar los que coinciden con un UUID. Después de encontrar uno o más con un UUID específico, puede averiguar cuál es el más cercano utilizando las devoluciones de llamada de delegado, donde las balizas se almacenan en una matriz ordenada por distancia.

Hay un gran código de ejemplo sobre esto y también una sesión de video WWDC bastante detallada: "Novedades en la ubicación central"


cada APLICACIÓN usaría su propio UUID específico, utilizando los valores enteros "mayor" y "menor" para diferenciar entre balizas.

por ejemplo, el UUID estaría asociado con una cadena de tiendas, mayor identificaría la tienda y menor el pasillo, o incluso un grupo de productos.

la búsqueda de UUID desconocidos no sería muy útil, ya que su aplicación no sabría qué hacer con la información.

El UUID se genera de una vez por todas, usando el comando "uuidgen" en el terminal.

Lamentablemente, no existe un protocolo para comunicarse realmente con balizas, por lo tanto, no hay un estándar para obtener la ubicación de una baliza o cualquier otra información útil.

Hubiera sido mucho mejor si pudiéramos abrir una conexión a una baliza, generalmente la más cercana, y obtener datos adicionales de ella, sin tener que estar en la misma red WIFI.

o bien tiene que usar bonjour para comunicarse con el dispositivo a través de WIFI, o usar la identificación principal y secundaria para obtener datos de un servicio web de algún tipo.