2014-12-03 8 views
5

Ich arbeite an einem iBeacon-Projekt, bei dem ich zusammen mit iBeacon-Daten Textinformationen senden möchte. Ich benutze jetzt das iPhone als iBeacon. Ich finde keine Möglichkeit, die Datenübertragung sowie den Empfang mit CoreLocation anzupassen.Weitere Daten in iBeacon senden

Ich bin in der Lage, dies zu tun, wenn sowohl Sender als auch Empfänger von Bluetooth-Modus sind. Ich habe ähnliche Fragen gestellt (Question, Question2) und diese sind anders als was ich will.

+0

Welche Beacon verwenden Sie? –

+0

Wenn die Firmware diese Daten überträgt, kann ich die zusätzlichen Daten lesen? – krishnanunni

+0

sie werden Ihnen dort eigene SDK für den Zugriff auf diese Daten zur Verfügung stellen. Einige andere Beacon-Anbieter stellen diese Informationen zur Verfügung. –

Antwort

3

Sie können dies nicht mit iBeacon allein tun. Sie benötigen Ihr Gerät als iBeacon und BLE-Peripheriegerät. Sobald Sie den Beacon-Bereich betreten, müssen Sie eine Verbindung zum BLE-Peripheriegerät über Core Bluetooth herstellen, um die zusätzlichen Merkmale zu lesen.

+0

Danke @ Paulw11. Dies wird mir helfen zu erreichen, was ich wollte. – krishnanunni

+0

Das ist richtig. Es gibt zwei Gründe, warum Sie die zusätzlichen Felder nicht zu einer iBeacon-Anzeige hinzufügen und die Felder auf iOS lesen können: 1. BLE-Ankündigungen haben eine begrenzte Länge und das iBeacon-Format verlangsamt nur ein zusätzliches Byte, das hinzugefügt wird, bevor die maximale Länge erreicht wird. 2. CoreLocation und CoreBluetooth lassen Sie nicht die rohen Bytes einer iBeacon Werbung lesen. – davidgyoung

+0

Ich würde die Beacon Identifier (UUID/Major/Minor) als separate GATT-Charakteristik darstellen, so dass Sie jedes Beacon bei der Verbindung über CoreBluetooth identifizieren können. – davidgyoung

0

Ich habe bereits auf jaalee beacon arbeiten, funktioniert es wie eine Push-Benachrichtigung auch.

//start Monitoring for beacon 

locationManager:(JLEBeaconManager *)manager didStartMonitoringForRegion:(JLEBeaconRegion *)region 
{ 

    [manager requestStateForRegion:region]; 
    [beaconManager startRangingBeaconsInRegion:region]; 
} 

//Enter method 

beaconManager:(JLEBeaconManager *)manager didEnterRegion:(JLEBeaconRegion *)region 

//Exit method 

beaconManager:(JLEBeaconManager *)manager didExitRegion:(JLEBeaconRegion *)region