2015-12-30 15 views
5

So habe ich periphere Gerät und ich brauche eine Kennung für es später mit einem anderen iPhone zu teilen. Beispiel I verbinden mit iPhone 'A' zu Peripherie. iPhone 'A' speichert die Kennung des Peripheriegeräts in der Datenbank und später kann ich einfach iPhone 'B' nehmen und eine Verbindung zu dem von diesem Identifikator gefundenen Peripheriegerät herstellen.Eindeutige Kennung für peripheres BLE-Gerät

Jetzt gibt es UUID was sich für jede iPhone-peripheral Verbindung ändert, aber MAC Address ist nicht verfügbar. Was kannst du vorschlagen?

+0

Ja, das ist ein Problem, dem ich bei der Arbeit mit iOS 9.0 begegnet bin. Die Kennung wurde für alle Geräte bis iOS 8.0 beibehalten. Ich suche immer noch eine Antwort. –

+0

Verwenden Sie den EAAccessoryManager, um das Peripheriegerät zu finden? Wenn Sie alle EAAccessory-Eigenschaften überprüfen, wenn Sie mit einer davon arbeiten können. (ModelNumber, SerialNumber, Name ....) – LoVo

+0

es sei denn, Ihr Peripheriegerät bietet eine Art eindeutige Kennung über ein GATT-Attribut Ich glaube nicht, dass es eine Lösung – Paulw11

Antwort

0

Ich habe ein ähnliches Problem und viele Thread wie this sagen, Sie können MAC-Adresse von CoreBluetooth nicht erhalten. Ich möchte eine Verbindung zu einem BLE-Peripheriegerät herstellen (ich meine ein offenes und verbindbares Peripheriegerät) und einige Informationen in einer Datenbank speichern, damit ein anderes iPhone die gleiche Datenbank lesen und die Informationen verwenden kann, wenn es sich mit demselben BLE-Peripheriegerät verbindet. Denn jetzt verlasse ich mich auf den Gerätenamen, wie folgt erhalten:

-(void)addDiscoveredDevice:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
{ 
    NSString * name = [peripheral name]; 
} 

weil NSString * uuid = [[peripheral identifier] UUIDString]; mir unterschiedliche Ergebnisse auf verschiedenen iOS-Geräte gibt.

Also sagen wir, mein erstes Problem ist zu wissen, wie viele Apple Watch habe ich in der Nähe meines iPhone, das zweite Problem ist zu wissen, ob eine bestimmte Apple Watch (z. B. Johns Apple Watch) in der Nähe von meinem iPhone ist. Leider funktioniert diese Methode nicht, da Benutzer (z. B. John) oder Firmen den Namen ihrer Peripheriegeräte ändern können.

Ja kann ich auf eine Kombination von Name + Service UUID + charakteristische UUID verlassen, aber aus den gleichen Gründen, wenn der Name ändert, ist es nutzlos. Hat jemand eine Lösung gefunden?

0

Wenn Sie die Peripherie nicht selbst herstellen, können Sie die Peripheriegeräte verschiedener iOS-Geräte nicht eindeutig identifizieren. Genau so will es Apple, denn Entwickler können die Standorte oder Bewegungsmuster von Benutzern nicht anhand von Geräteadressen verfolgen. Es wäre ein Datenschutzproblem.

Wenn Sie die Peripherie selbst herstellen, dann können Sie so ziemlich alles machen, was Sie wollen. Zum Beispiel: Benutze eine benutzerdefinierte Dienst-UUID, füge UUID zu Herstellerdaten in Werbung hinzu, setze eindeutige Werbungsnamen, etc etc .. Aber wenn der Hauptzweck von all dem ist, deinen Benutzer zu verfolgen, würde ich raten, dass Apple deine Einreichung ablehnen könnte.

Verwandte Themen