2013-04-03 12 views
8

Sto lavorando con il framework bluetooth principale. Sto cercando di creare la periferica usando questo framework. La mia periferica pubblicizzare i dati utilizzando:La chiave pubblicitaria "Dati produttore" non è consentita in CoreBluetooth

manager=[[CBPeripheralManager alloc]initWithDelegate:self queue:nil]; 
[manager startAdvertising:dictionary]; 

qui il dizionario che sto passando per la pubblicità è:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys: 
            @"name", CBAdvertisementDataLocalNameKey,@"some other data",CBAdvertisementDataManufacturerDataKey,nil]; 

quando sto facendo funzionare l'applicazione che ricevendo l'avvertimento: La pubblicità chiave 'Produttore Dati "non è consentito in CoreBluetooth

e non ricevo" altri dati "che ho inviato utilizzando il tasto CBAdvertisementDataManufacturerDataKey sul lato centrale. Sto prendendo il nome dal lato centrale. Quindi, come posso inviare altri dati con i dati pubblicitari?

+0

hai trovato una soluzione su questo? – civiac

+0

@civiac: No, in realtà non puoi modificare i dati del produttore. Stavo facendo un'applicazione demo, quindi ho usato name_some data (differenziato con _) e ho elaborato di conseguenza dal lato centrale. Inoltre nel mio caso ho ottenuto il dispositivo BLE secondo le mie necessità. –

risposta

9

Come la documentazione CBPeripheralManager su startAdvertising afferma:

Un dizionario opzionale contenente i dati che si desidera pubblicizzare. Le possibili chiavi di un dizionario di annunci pubblicitari sono dettagliate in CBCentralManagerDelegate Protocol Reference. Detto questo, solo due delle chiavi sono supportate per gli oggetti gestore periferiche: CBAdvertisementDataLocalNameKey e CBAdvertisementDataServiceUUIDsKey.

Tali tasti sono applicabili solo quando il dispositivo iOS è in modalità centrale e sta rilevando periferiche esterne (ovvero di sola lettura). Non ho idea del motivo per cui questa restrizione è in vigore quando si opera in modalità periferica, si potrebbe provare a presentare una segnalazione di bug su di esso.

+1

Sono in posizione periferica in quanto il dispositivo è un Apple iPhone, non quello che la tua app vorrebbe che fosse. Quindi tutte le cose del produttore sono dati di Apple, e tutto il materiale del dispositivo è l'iPhone. Quello che puoi modificare è il nome del dispositivo e specificare i servizi offerti dalla tua app (che iOS può quindi combinare con i servizi offerti da altre app). –

+0

OK, ha senso. Grazie per il chiarimento! – russbishop

+0

@russbishop Ehi, puoi guardare la mia domanda? Ho bisogno del tuo aiuto. https://stackoverflow.com/questions/46402904/is-there-any-way-access-manufacturer-data-from-ios-device – sorunluadam

Problemi correlati