2016-05-23 14 views
0

Ich habe zwei BLE-Peripheriegeräte (iOS und Android) und ein Macbook, das die zentrale ist.Android Peripherie-Kennung nie gleich

Ich bereits erfolgreich zu verbinden, schreiben, lesen und benachrichtigen, aber ich habe ein Problem mit der peripheren UUID von Android.

Auf zentrale didDiscoverPeripheral Methode (zentral) die UUID meines Android-Geräts ist nie das gleiche nach dem Neustart der Anwendung.

Ich brauche Geräte zu identifizieren, aber ich kann nicht, wenn die UUID immer ändern ..

Haben Sie irgendwelche Ideen?

+0

(Vielleicht hilft das !!) Ich habe keine Ahnung von Android-Programmierung, aber ich kenne Bluetooth LE und es klingt wie die Änderung in UUID ist, weil der Adresstyp Ihres Geräts "zufällig private resolvable" sein kann versuchen Sie es zu ändern " zufällige statische " –

Antwort

1

Der periphere Modus von Android ändert seine MAC-Adresse jedes Mal, wenn Sie BluetoothLeAdvertiser.startAdvertising() aufrufen. Dies ist eine Sicherheitsmaßnahme, die Sie nicht deaktivieren können. Weitere Informationen finden Sie unter this so question.

Unter iOS/Mac OS generiert CoreBluetooth UUID für gescannte Peripheriegeräte aus den Werbungsdaten. Einer der bekannten Faktoren ist die MAC-Adresse des Peripheriegeräts. Wenn das Android-Peripheriegerät seine MAC-Adresse ändert, können Sie die UUID-Änderung auf der Mac-Zentrale nicht stoppen.

Ich empfehle Ihnen, einige Daten in den Werbedaten Ihres Android-Peripheriegeräts hinzuzufügen, die Ihnen helfen, es zu identifizieren.

+0

Ich werde versuchen, Daten hinzuzufügen! Danke –

+0

Wenn Sie nach einer einfachen Lösung für die Geräteerkennung suchen, gibt es SDKs, die Ihnen helfen können, so dass Sie sich nicht selbst mit der Identifizierung von Geräten usw. herumärgern müssen. Checkout p2pkit.io oder Google in der Nähe. – p2pkit