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?
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. –
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
es sei denn, Ihr Peripheriegerät bietet eine Art eindeutige Kennung über ein GATT-Attribut Ich glaube nicht, dass es eine Lösung – Paulw11