2017-04-09 2 views
1

je peux rechercher des iBeacons avec:Connectez-vous à IBeacon

func locationManager(manager: CLLocationManager!, didRangeBeacons beacons: [AnyObject]!, inRegion region: CLBeaconRegion!) { 

    } 
} 

nous suppose que je reçois les balises suivantes après avoir scanné

Beacon 1: major:1 minor:5 uuid:xxx 
Beacon 2: major:1 minor:6 uuid:xxx 
Beacon 3: major:1 minor:7 uuid:xxx 

Après l'analyse que je veux me connecter à balise 2 et modifier ses caractéristiques . Je sais que je peux utiliser CoreBluetooth pour scanner et se connecter à un périphérique Bluetooth et modifier ses caractéristiques, mais le problème est de savoir comment identifier quel périphérique est la balise 2 via Core Bluetooth?

Répondre

1

Vous ne pouvez pas obtenir d'informations qui concernent directement un CLBeacon à CBPeripheral.

Généralement, le service GATT de la balise expose une caractéristique de «nom de périphérique» que vous pouvez afficher à l'utilisateur pour lui permettre de sélectionner le périphérique à configurer à partir d'une liste. Comme David l'a souligné dans les commentaires, tout service du GATT de ce genre sera spécifique au vendeur, ou peut même ne pas exister, la balise étant configurée par une autre méthode, telle que l'USB. Même lorsqu'un service du GATT est fourni, il peut être désactivé par configuration ou seulement actif pendant une période limitée après la mise sous tension initiale.

Il n'y a pas de service générique "configurer un iBeacon" défini.

+1

Pour ajouter à la réponse de Paul, toutes les balises ne sont pas connectables au GATT. Certains fabricants fournissent cette configuration, mais vous ne pouvez pas utiliser les API CoreLocation. Vous devez utiliser les API CoreBluetooth. Et les détails de la façon dont vous le faites sont tous spécifiques au fournisseur. Demandez à votre fabricant de balises si elles ont des documents pour un service public config GATT. Vous ne pouvez pas corréler les détections de balises aux périphériques CoreBluetooth. Apple bloque malheureusement cela. – davidgyoung

+0

ce que je reçois est qu'il n'y a aucun moyen de relier CLBeacon avec CBPeripheral, afin de relier les deux je dois connecter toutes les balises et vérifier un par un, puis identifier la bonne balise parce que la balise que j'utilise expose aussi sa majeure/mineur/uuid via gatt. mais cette approche est inutile si j'ai plus de balises comme 20+ – H4SN

+0

Comme David l'a dit, cela dépend de votre balise; certains peuvent exposer un nom utile via leur service du GATT. – Paulw11