1

Bluetoothがオンになっているかどうかを確認したいアプリケーションがあります(このアプリをAppleアプリストアに送信するつもりはありません)。オンになっている場合は、アラートを表示する必要があります。

    - (void)centralManagerDidUpdateState:(CBCentralManager *)central{
  switch (central.state) {
    case CBCentralManagerStatePoweredOn:{
      //alert view
      break;
    }
  }

そして、viewdidload私はこれが好きでした

  CBCentralManager * manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];

しかし、これは iOS 5.1 の ipad2 では機能しません。

問題はcentral.state常に null です。

ios 3.0 から ios 6 beta まで同じシナリオが機能することを望みます。Bluetooth の状態を確認するための一般的なコードはありますか。

プライベート API を使用したコードであっても、可能なコードはすべて歓迎されます。

4

3 に答える 3

3

CBCentralManagerBluetooth Smart (Bluetooth 4.0 の Low Energy 部分) を使用するためのものです。これは、iOS / OS X デバイスに最近導入されたばかりの新しいテクノロジーです。現在サポートされているのは iPhone 4s と新しい iPad です。iPad 2 は、このテクノロジーをサポートしていません。また、CBCentralManageriOS 5 以降でのみ使用できます。

従来の Bluetooth の状態を確認したい場合は、それを行う別の方法を見つける必要があります。

あなたの場合、central.state実際には等しいはずCBCentralManagerStateUnsupportedです。

于 2012-08-29T08:10:52.880 に答える
2

あなたはBluetoothManagerAPIを見たいと思っています。BluetoothManager.frameworkは、この API が存在するプライベートフレームワークです。Xcode プロジェクト内からリンクするか、動的dlopenに開くために使用できます ( )。"/System/Library/PrivateFrameworks/BluetoothManager.framework/BluetoothManager"

重要な呼び出しは

- (BOOL)powered;
- (BOOL)enabled;
- (BOOL)setPowered:(BOOL)arg1;
- (BOOL)setEnabled:(BOOL)arg1;

のインスタンスを取得するにはBluetoothManager、次を使用します。

BluetoothManager* mgr = [BluetoothManager sharedInstance];
于 2012-09-22T08:23:55.390 に答える
1

また、iOS7 を実行している iPhone 4 で CBCentralManagerStateUnsupported を取得していません。Apple にバグチケットをオープンしました。

http://openradar.appspot.com/15564675はレーダーです

およびhttps://github.com/deadfalkon/btLeStateリポジトリ

于 2013-12-02T15:28:19.110 に答える