[iOS] STICKERS BEACON ou nearables
jeudi 12 mars 2015J’ai enfin reçu les stickers d’Estimote plus communément appelé « nearables ». Ce sont des beacons plus fin qu’on peut coller
sur des objets et qui permet de savoir par exemple si ils sont en mouvement ou non , la température, la durée du mouvement etc…
Je me suis donc attelé à la création d’une application qui lorsqu’on bouge un produit affiche un descriptif du produit sur
le téléphone.
La mise en place est évidemment très proche de celle des beacons à la différence que ceux-ci ne sont plus identifié
par un proximityUUID, major et minor. Ils sont identifiés par un attribut « identifier » unique ou une catégorie (bike,chair,dog,etc…).
Il existe toujours les méthodes « Monitoring » et « Ranging » pour scanner les nearables.
Bien évidement, il faut inclure la dernière version du SDK Estimote pour ma part (2.4.0), je l’ai fait en utilisant CocoaPods.
Dans .h, on ajoute le ManagerDelegate pour avoir accès aux fonctions delegate.
@interface ViewController : UIViewController <ESTNearableManagerDelegate> @property (nonatomic, strong) ESTNearableManager* nearablesManager; @end
Dans .m
- (void)viewDidLoad { self.nearablesManager = [ESTNearableManager new]; self.nearablesManager.delegate = self; [self.nearablesManager startRangingForType:ESTNearableTypeAll]; }
Dans ce cas-ci, je scanne tous les « nearables » de toutes les catégories
Il ne reste plus qu’à utiliser la fonction delegate qui retourne tous les nearables trouvés:
- (void)nearableManager:(ESTNearableManager *)manager didRangeNearables:(NSArray *)nearables withType:(ESTNearableType)type { if([nearables count] > 0){ // POUR CHAQUE NEARABLES for (ESTNearable* key in nearables) { // JE VERIFIE SI IL A BOUGE if(key.isMoving){ NSString * cat = [ESTNearableDefinitions nameForType:key.type]; NSLog(@"Category:%@",cat); if([cat isEqualToString:@"chair"]){ // ACTION FOR NEARABLE TYPE CHAIR } if([cat isEqualToString:@"dog"]){ // ACTION FOR NEARABLE TYPE DOG } if([cat isEqualToString:@"bike"]){ // ACTION FOR NEARABLE TYPE BIKE } } } } }
Voilà, on est proche du code à fournir pour les beacons, par contre ça fonctionne pas mal mais pas à 100% (interférence?)
Sinon si vous téléchargez l’application d’estimote il y a un dossier nearables contenant des exemples d’utilisation (Température,Acceleromètre,trigger,Ranging,Monitoring)
Par contre, j’ai aussi essayé avec la fonction Monitoring et de lancer une notification mais il semblerait qu’il y ait un bug dans le sdk sous IOS7 quand on veut monitoré des nearables.