iOS iBeacon: Comment obtenir tous proximityUUID par programmation?
Je veux voir tous proximityUUID de la publicité paquets par programmation. Certains articles disent qu'il est impossible sur iOS, mais Android est possible. Mais je ne crois pas car j'ai trouvé l'application fantastique "BLExplr" a la fonction. J'ai besoin d'implémenter la fonction dans mon application. Personne ne sait comment le faire ou de bons exemples? Toute aide sera appréciée.
(Mise à JOUR 2014/1/17)
Je crois que @davidgyoung réponse est juste. Estimote phare du proximityUUID est "B9407F30-F5F8-466E-AFF9-25556B57FE6D" mais s'affiche sur mon Estimote phare de l'UUID sur BLExplr app est une autre ID.
J'ai trouvé une autre application "Lumière Bleue". Cette application a les mêmes caractéristiques. Mais je ne peut toujours pas trouver une solution possible. Dois-je lire BLE de données brutes en utilisant la technologie Bluetooth cadre..? (Je ne suis pas sûr de savoir si c'est possible ou pas)
OriginalL'auteur zono | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Malheureusement, vous ne pouvez pas présent sur iOS. Quand vous dites que BLExplr et LightBlue pouvez faire cela, vous confondez le service Bluetooth UUID avec le iBeacon Proximité UUID. Ce sont deux choses très différentes.
Le service Bluetooth UUID est visible à iOS, mais n'a rien à voir avec un iBeacon identifiants, et c'est inutile pour travailler avec les iBeacons. L'UUID de service est généré par iOS à chaque fois qu'un périphérique bluetooth est vu, et reste le même que pour la durée de temps de l'appareil bluetooth à portée. Si vous prenez un périphérique bluetooth à l'écart et de le ramener plus tard, il aura un autre service de l'UUID.
Un iBeacon identifiants (ProximityUUID, Majeur, Mineur) sont intégrés à l'intérieur du corps de la technologie Bluetooth, de la publicité. Le problème sur les appareils iOS est qu'Apple CoreBluetooth Api interdire l'accès à la crue de la publicité de corps, de sorte qu'aucune application tierce est capable de lire ces identifiants. Apple permet uniquement l'accès à ces identifiants à l'aide de la iBeacon CoreLocation Api, mais ces Api vous obliger à savoir la Proximité de l'UUID à l'avant.
Désolé, je sais que ce n'est pas la réponse que vous voulez entendre! (Je suis désolé à ce sujet, aussi!) Pour ce que ça vaut, vous pouvez le faire sur Android, sur mac OSX Mavericks et Linux.
Voir les détails ici.
Pouvez-vous dire alors comment le Rayon des Réseaux application "Localiser" dans l'AppStore pouvez lire mon UUID et, petites et Grandes, des valeurs, sans moi, d'entrée? Je développe une application qui devra chercher de l'inconnu, l'UUID de la comparer à ce que j'ai dans une base de données. Cheers
Il ne peut pas. L'application est préconfiguré avec une dizaine de populaire Uuid. Vous devez avoir un populaire sur votre balise.
Ok merci. J'ai réussi à comprendre la façon de procéder. Merci encore
Estevex Avez-vous trouvez une solution ? Je veux aussi savoir comment je détecte des balises sans connaître l'uuid dans ios.
OriginalL'auteur davidgyoung
davidgyoung est partiellement tort de ne pas être en mesure d'obtenir iBeacon info. Vous avez réellement peut obtenir la proximité UUID sur OS X, mais pas iOS.
Dans un
CBPeripheral
'sadvertisingData
, il devrait y avoir une clé appeléekCBAdvDataManufacturerData
; C'est unNSData
représentant le iBeacon l'information de la publicité. Cette touche est uniquement disponible sur OS X.Vérifier que la 2ème octet est égal à
0x02
, le 1er de deux octets sont égales à0x004c
(76
en décimal), et le 4ème octet (en décimal) + 4 est égal à la longueur (doit être de 25).NSRanges (désolé pour Mac syntaxe)
La proximité de l'UUID:
NSMakeRange(4, 16)
Majeur:
NSMakeRange(20,2)
Mineur:
NSMakeRange(22,2)
Pour vous assurer que vous faites ce droit, vous pouvez vous connecter les valeurs hex (utiliser la chaîne de format
%x
) et assurez-vous qu'ils correspondent à ladescription
de laNSData
d'où elles viennent.advertisementData = { kCBAdvDataIsConnectable = 1; kCBAdvDataLocalName = estimote; kCBAdvDataServiceData = { "Device Information" = <0ec9686a 05d8b60e c9686a>; }; }
YarGnawh, je suis à la suite de la iBeacon profil du contour de la publicité des données. C'est la façon dont CoreBluetooth du gestionnaire de périphériques de la publicité. Il y a peut-être d'autres façons de la publicité avec des balises. Estimote peuvent se tourner pour kCBAdvDataServiceData et se connecter à la balise, puis lire une caractéristique pour obtenir la majeure et la mineure.
En outre, en bas à droit de vote de la réponse qui fournit des informations correctes qui répond à la question (surtout quand les autres il suffit de rejeter la question) est stupide.
Un vote pour @Nathaniel Symer pour fournir des informations correctes. Je pense connaître la raison de votre commentaire de l'arrêt voté. Probablement, les gens qui lisent votre message peut pas assez d'informations sur iBeacon. Le
kCBAdvDataManufacturerData
semble être disponible uniquement sur les appareils conformes à iBeacon Profil Bluetooth (défini par apple, si je ne me trompe pas) les informations mentionnées également discuté de la ici.Je crois que cette technique fonctionne sur OSX, mais pas sur iOS. Mes tests montrent que la clé mentionnée ci-dessus n'est pas présent sur iOS pour le iBeacon dans les publicités. Voir ici: developer.radiusnetworks.com/2013/10/21/...
OriginalL'auteur Nate Symer
mais l'uuid est le DeviceUUID, pas la ProximityUUID
data
variable pouvons-nous utiliserkCBAdvDataServiceData
tableau directement ici ?oui, les données sont [advertisingData objectForKey:kCBAdvDataServiceData]
OriginalL'auteur Jeanette Müller