Je veux juste faire une simple vérification de si Bluetooth est activé sur l'appareil ou non. P>
Je ne veux pas changer le statut de l'intérieur d'une application (ou du tout), utilisez un appareil d'API privé, de jailbreaker un appareil ou de faire tout ce qui ferait que Apple rejette une application. P>
Tout ce que je veux, c'est savoir si Bluetooth est allumé ou non. P>
Quelqu'un peut-il perdre de la lumière sur cela? Y a-t-il une façon de faire cela? P>
Je suis pleinement conscient, après avoir lu d'innombrables postes et documentation que Apple est très restrictif lorsqu'il s'agit de Bluetooth (entre autres). P>
Si vous ne pouvez contribuer que pour contribuer à cette question avec un lien avec la documentation et / ou une remarque de divertissement à propos de l'apprentissage de l'objectif-C, de la documentation de lecture, etc., veuillez ne pas répondre. P>
5 Réponses :
Malheureusement pas, le SDK n'expose pas les méthodes Bluetooth. p>
Il peut y avoir un moyen de le faire en utilisant des méthodes sans papiers, mais nous connaissons tous le problème là-bas. P>
Oui, ils rejetteront l'application parce qu'ils sont un tas de ****
La seule façon dont j'ai jamais trouvé cela est avec des cadres privés (comme Bluetooth Manager, pour une) qui ne sont utiles que pour les applications jailbreades ... et Apple rejetera toute application à l'aide d'un cadre privé. Je crois que c'est même contre leur TOS de faire quoi que ce soit avec Bluetooth, vous avez donc mal de chance là-bas. P>
En fait, ce n'est pas seulement utile pour Jailbreakon, mais également pour les applications signées avec le certificat d'entreprise.
Il semble y avoir une réponse ici - en utilisant Core Bluetooth Cadre P>
Cependant, cette réponse ne fonctionnera que pour iOS 5.0 et plus. Je n'ai pas testé cela moi-même, mais je reviendrai et ajoutera des commentaires si je constate que cela fonctionne. P>
Vous pouvez maintenant vérifier cela à l'aide du CBCentralManager dans iOS 7 et l'initialisez-la avec l'option CBCRRALMANAGEROPTIONSHOWPOWERNERKEYTERTY. P>
La clé CBCLANGRALMANAGEROPTIONSHOWPowerAlertyTerkey, qui peut être transmise au Publié ici: http://chrismeadddern.com / Déterminez-la-si-Bluetooth-est-activé-on-ios-passive / p> initwithDelegate: file d'attente: Options: Code> Méthode sur CBCentralManager, ce qui entraînera IOS de démarrer le gestionnaire central et ne pas inviter l'utilisateur à activer Bluetooth. p>
pour iOS9 +, vous pouvez vérifier ma réponse ici .
#import <CoreBluetooth/CoreBluetooth.h> @interface ShopVC () <CBCentralManagerDelegate> @property (nonatomic, strong) CBCentralManager *bluetoothManager; @end @implementation ShopVC - (void)viewDidLoad { [super viewDidLoad]; if(!self.bluetoothManager) { NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO}; self.bluetoothManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options]; } } #pragma mark - CBCentralManagerDelegate - (void)centralManagerDidUpdateState:(CBCentralManager *)central { NSString *stateString = nil; switch(self.bluetoothManager.state) { case CBCentralManagerStateResetting: stateString = @"The connection with the system service was momentarily lost, update imminent."; break; case CBCentralManagerStateUnsupported: stateString = @"The platform doesn't support Bluetooth Low Energy."; break; case CBCentralManagerStateUnauthorized: stateString = @"The app is not authorized to use Bluetooth Low Energy."; break; case CBCentralManagerStatePoweredOff: stateString = @"Bluetooth is currently powered off."; break; case CBCentralManagerStatePoweredOn: stateString = @"Bluetooth is currently powered on and available to use."; break; default: stateString = @"State unknown, update imminent."; break; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Bluetooth state" message:stateString delegate:nil cancelButtonTitle:@"ok" otherButtonTitles: nil]; [alert show]; }
Avez-vous vu ce blog post? carpe-cocoa.com/2009 -07-29 / ...
Vous allez certainement obtenir beaucoup d'aide être impoli et aliéner quiconque voudra peut-être aider. Gardez cela.
@Jesse Ce n'était pas du tout mon intention d'être impoli ou aliénant, j'essayais simplement de souligner que le lien que vous avez posté n'est plus utile car nous avons évolué bien iOS 3.1 et que le code dans le lien est essentiellement obsolète. En tout cas, veuillez accepter mes excuses.
Excuses acceptées. :) Theres a eu une façon d'être un moyen de faire cela, et je me sens comme ça en quelque sorte traverse Bonjour, (j'ai lu un bref extraitant quelque part dans Apple Docs, comment Bonjour passe automatiquement par Bluetooth?) Mais je n'ai jamais utilisé Bonjour, et N'avez pas vraiment le temps de réserver pour approfondir les trucs de bas niveau. Je vérifierais cela comme une option possible cependant.
Dupliqué possible de Comment obtenir le statut de Bluetooth (marche / arrêt) dans iPhone de manière programmable
Dupliqué possible de iOS - Vérifier si Bluetooth est activé sans alerte système popup à l'utilisateur