2014-10-22 12 views

risposta

5

Non si riceve una notifica specifica quando una centrale si connette al servizio periferico fornito dalla propria app. È possibile dedurre una connessione dal CBPeripheralManagerDelegate metodi seguenti viene chiamato -

  • didSubscribeToCharacteristic
  • didReceiveReadRequest
  • didReceiveWriteRequest

se avete ricevuto un abbonamento tramite didSubscribeToCharacteristic allora si può dedurre una disconnessione quando si ricevere una chiamata corrispondente a didUnsubscribeFromCharacteristic. Se la centrale non sta utilizzando le sottoscrizioni, non si ha alcuna indicazione che siano disconnessi, semplicemente non si otterranno più richieste di lettura/scrittura.

Non è possibile rifiutare una connessione da una centrale. È possibile impostare un requisito di crittografia su una o più delle caratteristiche. Ciò avvierà quindi un processo di accoppiamento basato su pin quando un centro tenta prima di leggere/scrivere/notificare su quella caratteristica.

È inoltre possibile implementare una qualche forma di processo di autenticazione in cui una centrale è necessaria per rispondere a una sfida/scrivere una password per una caratteristica ecc. Prima di rispondere alle altre richieste di lettura/scrittura di quel centro.

+0

Ciao Paulw11, grazie per la tua risposta. Ma non sono sicuro del processo di creazione della connessione inizializzato da centrale. Significa che la centrale legge semplicemente i segnali di trasmissione dalla periferica mentre si connette, senza avvisare la periferica finché non fa nulla sulle caratteristiche? –

+0

No, sul livello Bluetooth c'è una notifica alla periferica che viene avviata una connessione e alcune comunicazioni avvengono per stabilire la connessione, ma il framework Bluetooth Core non espone un metodo delegato per avvisare una CBPeripheral che è stata effettuata una connessione – Paulw11

+0

@Paulw conosci la ragione dietro a non esporre queste informazioni? Inoltre, c'è un modo per simulare un link BTLE "cattivo" (come possiamo dire che il collegamento WiFi farà cadere il 50% dei pacchetti usando Impostazioni -> Sviluppatore)? –

Problemi correlati