Je suis en train de créer une application iPhone (Xcode 4.3.1, IOS 5) que l'on pourrait utiliser des périphériques Bluetooth! Le but principal de cette application est couverte de navigation (GPS à l'intérieur des bâtiments n'est pas vraiment précis).
La seule solution que je vois ici (pour garder mon application sur l'AppStore) est d'essayer d'analyse pour les appareils bluetooth disponibles!
J'ai essayé d'utiliser CoreBluetooth cadre, mais je ne suis pas d'obtenir la liste des périphériques disponibles! Peut-être que je n'utilise pas ces fonctions correctement
#import <UIKit/UIKit.h>
#import <CoreBluetooth/CoreBluetooth.h>
@interface AboutBhyperView : UIViewController <CBPeripheralDelegate, CBCentralManagerDelegate>
{
CBCentralManager *mgr;
}
@property (readwrite, nonatomic) CBCentralManager *mgr;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
mgr = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
}
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
NSLog([NSString stringWithFormat:@"%@",[advertisementData description]]);
}
-(void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals{
NSLog(@"This is it!");
}
- (void)centralManagerDidUpdateState:(CBCentralManager *)central{
NSString *messtoshow;
switch (central.state) {
case CBCentralManagerStateUnknown:
{
messtoshow=[NSString stringWithFormat:@"State unknown, update imminent."];
break;
}
case CBCentralManagerStateResetting:
{
messtoshow=[NSString stringWithFormat:@"The connection with the system service was momentarily lost, update imminent."];
break;
}
case CBCentralManagerStateUnsupported:
{
messtoshow=[NSString stringWithFormat:@"The platform doesn't support Bluetooth Low Energy"];
break;
}
case CBCentralManagerStateUnauthorized:
{
messtoshow=[NSString stringWithFormat:@"The app is not authorized to use Bluetooth Low Energy"];
break;
}
case CBCentralManagerStatePoweredOff:
{
messtoshow=[NSString stringWithFormat:@"Bluetooth is currently powered off."];
break;
}
case CBCentralManagerStatePoweredOn:
{
messtoshow=[NSString stringWithFormat:@"Bluetooth is currently powered on and available to use."];
[mgr scanForPeripheralsWithServices:nil options:nil];
//[mgr retrieveConnectedPeripherals];
//--- it works, I Do get in this area!
break;
}
}
NSLog(messtoshow);
}
Je ne suis pas sûr au sujet de cette ligne, comment passer des paramètres corrects?
[mgr scanForPeripheralsWithServices:nil options:nil];
J'ai pris un coup d'oeil dans la pomme de référence .. et je ne comprends toujours pas qu'est-ce que CBUUID ??? Chaque appareil a bluetooth id? où puis-je le trouver?
- (void)scanForPeripheralsWithServices:(NSArray *)serviceUUIDs options:(NSDictionary *)options;
Paramètres serviceUUIDs - Un tableau de CBUUIDs l'application est intéressé. options - Un dictionnaire de personnaliser l'analyse, voir CBCentralManagerScanOptionAllowDuplicateskey.
Est-il un autre moyen pour utiliser le Bluetooth sur IOS? Je veux dire, les anciens cadres qui n'utilisent pas de BLE 4.0!
tout conseil serait apprécié!
merci!