0

iPad でコア Bluetooth を動作させることができないようです。

ViewController.h

@interface ViewController : UIViewController <CBCentralManagerDelegate, CBPeripheralDelegate>
{
    CBCentralManager *manager;
}
@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UITextView *textField;

@end

@implementation ViewController

@synthesize textField;

- (void)viewDidLoad
{
    [super viewDidLoad];
    manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)action:(id)sender {
    textField.text = @"";

    if (manager.state == CBCentralManagerStatePoweredOn) {
        textField.text = @"Scanning...";
        NSLog(@"scanning");
        [manager scanForPeripheralsWithServices:nil options:nil];
    } else {
        textField.text = @"Error";
    }
}

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
    NSLog(@"2");
    textField.text = [NSString stringWithFormat:@"%@%@\n", textField.text, peripheral.name];
}

- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
    NSLog(@"d");
}

@end

2ログに記録されず、デバイスが検出されません。設定でBluetoothが有効になっていることを確認しました。

コードの何が問題になっていますか? 該当するデバイスが検出されていない可能性がありますか? Bluetooth設定でiMacを問題なく検出できます。

また、Core Bluetooth (Bluetooth LE を備えたデバイスで実行されている) は、Bluetooth LE 以外のデバイスを検出できますか? ワイヤレスヘッドセットなど?

4

1 に答える 1

2

CoreBluetoothはBluetoothLowEnergyでのみ機能し、使用しているコードは、BLEタグ、心拍数モニター、センサー、または周辺モードのiOS6デバイスなどの周辺BLEデバイスのみを検出します。

そのため、この方法でiMac(OSXにはまだCoreBluetooth経由の周辺機器モードがありません)またはワイヤレスヘッドセットを検出することはできません。または、公式SDKを使用したその他の方法。

于 2013-03-04T07:12:17.653 に答える