IOS-Bluetooth LE : es konnte keine Verbindung mit gespeicherten kopplungsdaten

Ich bin stucked in meinem IOS-dev und ich brauche Hilfe. Ich bin kein Experte und es ist vielleicht eine dumme Frage.

, Was ich versuche zu tun,

Ich versuche eine Verbindung zu meinem app ein Bluetooth-LE-Gerät, das die Bedürfnisse gekoppelt werden.

Aktuelle Verhalten

Ist es kein problem ohne pairing das Gerät, und meine iPhone-Anwendung. Ich bin in der Lage zu verbinden, verbinden Sie und Lesen/schreiben-Eigenschaften, ohne jedes problem.

Aber, wenn das Gerät müssen gekoppelt werden, ich bin nur in der Lage zu Lesen/schreiben Merkmale der ersten Zeit, direkt nach dem pairing popup-Bestätigung. Das nächste mal, ich entdecken und verbinden Sie die app mit meinem Gerät, aber ich habe nicht die Rechte zum Lesen/schreiben von Eigenschaften von Daten, da (denke ich mal) ich bin nicht mit dem pairing-Informationen.

Endlich...

Nachdem er einige Stunden auf der Suche rund um das Internet ohne Glück hier sind meine Fragen :

  • Wie Verbinde ich meine app, um einen Bluetooth-LE-Gerät aus meiner iPhone-app mit der Paarung gespeicherten Daten auf meinem Handy? Bin ich etwas fehlt?

  • Ist es möglich, dass es nicht ein IOS-problem, denn wenn die pairing-Daten vorhanden sind, das Telefon mit dem Gerät verbinden, wird er automatisch verwendet?

Gibt es jemanden mit Erfahrung mit Bluetooth LE und IOS, um mir zu helfen?

Update 2013-10-27

Habe ich entdeckt, dass Sie nicht Lesen können, eine geschützten Merkmal durch die Kombination von Authentifizierung direkt nach, dass das Merkmal entdeckt wurde , wenn eine Kopplung vorhanden ist (kein popup). Kein problem mit nicht geschützten Merkmal! Ich weiß nicht genau warum passiert ist, aber das Verhalten ist, dass die IOS app noch nie erhalten Antworten aus dem Gerät.

Also, wenn die erste Lesung erfolgt nach, es muss nicht zu Problemen führen. Hier ist der code, den ich verwende, um zu entdecken, Merkmalen, mit der die Daten zu Lesen im Kommentar.

- (void) peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error;
{
    NSArray     *characteristics    = [service characteristics];
    CBCharacteristic *characteristic;

    if (peripheral != servicePeripheral) {
        NSLog(@"Wrong Peripheral.\n");
        return ;
    }

    if (service != batteryService) {
        NSLog(@"Wrong Service.\n");
        return ;
    }

    if (error != nil) {
        NSLog(@"Error %@\n", error);
        return ;
    }

    for (characteristic in characteristics) {
        NSLog(@"discovered characteristic %@", [characteristic UUID]);

        if ([[characteristic UUID] isEqual:[CBUUID UUIDWithString:kBatteryCharacteristicUUIDString]]) { //Bat
            NSLog(@"Discovered Bat Characteristic");
            batteryCharacteristic = [characteristic retain];
            //--> generate problem when pairing exists between IOS app and device
            //[peripheral readValueForCharacteristic:batteryCharacteristic];
        }
    }
}
  • Können Sie überprüfen, mit einem Bluetooth-sniffer? Soweit ich weiß, nur iOS verschlüsselt die Kanäle und erlaubt das Lesen der geschützten Merkmale, wenn Sie die vollständige PIN-basierte Kopplung. Andernfalls wird Ihr remote-Gerät kann nur die pairing-Informationen zu erkennen, die das iPhone in Zukunft verbindungen.
  • Ich stehe vor genau dem gleichen Problem. Also, wenn Sie sagte, "das problem war auf der chip-Seite", wie haben Sie voran gehen und das problem gelöst? Könnten Sie einige Hinweise, bitte?
  • Ich war mit Nordic-BLE-chip nRF51822 und die Merkmale, Eigenschaften, war nicht gut definiert in den uController.
  • ich bin auch vor dem gleichen problem, immer wenn ich etwas schreiben über ble reagiert Sie nicht und ich bin nicht erhalten, keine Daten in didupdatecharcaterstics
  • Haben Sie es erreicht ? Ich m Einfassungen gleiche Problem... Auch mit der gleichen nordischen BLE-chip nRF51822.
  • Das problem war nicht in iOS, aber in den nordischen chip. Die Merkmale, Eigenschaften, war nicht gut definiert in den uController
  • OK, nRF51822-chip-Programmierer behauptet, Sicheres pairing es bereits getan. Aber in iOS konnte ich nicht in der Lage zu tun, mit connectPeripheral:Optionen: Methode. In iOS, die wir nicht wollen, etwas zu ändern. Nur connectPeripheral Methode öffnet Pairing-dialog, Wenn nRF51822-chip programmiert, perfekt. Richtig ? Bitte reagieren.
  • Bitte posten Sie einen Kommentar auf obigen Abfrage.
  • Sorry, kann ich dir nicht helfen. Sie sollten versuchen, zu einer Frage auf der devzone.nordicsemi.com/questions

InformationsquelleAutor sdespont | 2013-10-25
Schreibe einen Kommentar