2013-03-12 2 views
2

Je travaille sur bluetooth4.0, mais j'ai trouvé que CoreblueTooth ne peut pas fonctionner sur iOS 6 +, mon iphone4s est IOS 6.1.2.Dose CoreBluetooth fonctionne sur IOS6.0, IOS6.1, IOS6.1.2?

ne peut pas trouver un appareil (je suis sûr que l'appareil est sous tension), le journal comme ci-dessous à chaque fois:

CoreBluetooth [AVERTISSEMENT] n'est pas sous tension

Dose quelqu'un a rencontre ce problème?

+1

Le message d'avertissement vous indique que la radio Bluetooth dans la L'iPhone n'est pas allumé. Cela ne vous dit pas que votre périphérique est éteint. Vous devez publier le code que vous utilisez pour configurer et utiliser Bluetooth. – mttrb

+0

mbuc91 a une réponse plus détaillée, mais en réponse à votre question de base: oui, Core Bluetooth fonctionne sur toutes ces versions d'iOS sur un iPhone 4S. Je l'ai utilisé pour communiquer avec un accessoire sur chacune de ces versions. Il y a des bogues bizarres avec certaines versions plus anciennes d'iOS 6.0 qui peuvent entraîner le retour d'UUID nuls à partir de périphériques, mais les périphériques eux-mêmes sont très bien trouvés. –

Répondre

0

Je suis en train de tester un iPhone 4S sous 6.0.1. L'iPhone joue un rôle central et je ne vois pas votre avertissement.

Pouvez-vous être plus précis sur ce que vous faites? - Êtes-vous dans un rôle périphérique ou central?

Avez-vous initialisé CBCentralManager (si vous êtes un système central) comme suit?

centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue()]; 

J'espère que je pourrais vous aider

3

Le statut CBCentralManagerStatePoweredOn signifie non seulement que la fonction Bluetooth est activée, mais aussi que votre instance de CBCentralManager ou CBPeripheralManager est prêt à l'emploi. Vous devez initialiser votre gestionnaire, puis attendez que son état change avant de l'utiliser. Par exemple, si vous agissez en tant que centrale, vous l'initialiser avec les éléments suivants:

centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 

et mettre en œuvre la méthode déléguée centralManagerDidUpdateState:

- (void)centralManagerDidUpdateState:(CBCentralManager *)central 
{ 
    if (central.state == CBCentralManagerPoweredOn) 
    { 
     //do your stuff, it's ready 
    } 
} 
Questions connexes