2013-08-19 4 views
5

私はiOS搭載のBluetoothを使用して、このようなコード:のiOSブルートゥースscanForPeripheralsWithServices何もありません

static NSString * const kServiceUUID = @"1802"; 
[self.manager scanForPeripheralsWithServices:@[ [CBUUID UUIDWithString:kServiceUUID] ] options:@{CBCentralManagerScanOptionAllowDuplicatesKey : @NO }]; 

なぜ応答がありませんか?私はこの質問をチェックした scanForPeripheralsWithServices メソッドのパラメータのペアの種類を試してみました: How to get list of available Bluetooth devices?

私のデバイスは、私はすでにいくつかのBluetooth 4.0のデバイスをテストしているのiOS 6と(ジェイルブレイク)のiPod touch 5です。なぜ誰かが私に言うことができますか?

+0

YESを選択すると、 – Larme

+0

@Larmeまた動作しません。私はこのキーの意味を理解していません。 –

答えて

7

nilサービスでスキャンし、探している周辺機器が実際に何かを宣伝しているかどうかを確認します。 centralManager:didDiscoverPeripheral:advertisementData:RSSI:が呼び出されると、広告データをチェックアウトします。単にNSLog()です。 0x1802が含まれていない場合、周辺機器はこのサービスを宣伝しておらず、スキャナーはそれをこの方法で見つけられません。これを修正するには、広告の設定にサービスを含めます。

NSDictionary *advData = 
@{CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:@"1802"]]}; 
[peripheralManager startAdvertising:advData]; 
+3

まだ私のために働かなかった。しかし、私はそれを理解した。状態がCBCentralManagerStatePoweredOnに変更される前にスキャンを開始しました。 – david72

+0

デバッグの良い方法は、serviceUUIDsの空の配列を設定してすべての周辺機器を表示することです。 –

1

実際には即時警報サービス(1802)を宣伝している広告iOSデバイスにログオンしていますか?これは、CBPeripheralManagerDelegate peripheralManagerDidStartAdvertising:コールバックの中で印刷することができます。フォアグラウンドの両方のアプリでnilをスキャンし、確認するために広告データを調べることもできます。同様に、それが専用の周辺機器である場合、フォアグラウンドで中央マネージャを実行するデバイスでも同じことをします。周辺機器がまだ見えない場合(この周辺機器のファームウェアにアクセスできない場合)、TI Packet Snifferを購入して、渡されているすべてのデータパケットを確認してください。

+0

特定のサービスのスキャンで、Bluetooth LEデバイス(通常、誤って構成され、デバイスの宣伝時に特定のサービスを宣伝することを忘れてしまったデバイス)が見逃されることがあります。サービスを除外してスキャンを実行すると、返されたすべてのデバイスを調べて、デバイスがまったく広告としてピックアップされていることを確認した後、そのデバイスがアドバタイズするサービスを確認することができます。 –

1

何千回もありますが、申し訳ありません。次に、別のBluetooth 4.0 LEデバイスで自分のコードをテストしました。できます!私の以前のBluetooth 4.0デバイスはLEバージョンではないということです。彼らは私に間違ったことを言った!ありがとう、あなたの時間を無駄にしてごめんなさい。

+1

よろしくお願いします。答えをくれた私たちにとっては悪い。私はあなたが私たちに投票することは公正だろうと思う。実際には、提案された解決策は将来の訪問者にこの質問を助けることができることを覚えておいてください。 – allprog

+0

@SmeegolどのタイプのBluetooth 4.0 LEデバイスを使用したのですか?私はCirago BT8000 LEデバイスを試しましたが、検出されません。私たちがiOS用に使用できるBluetoothのドングル名について言及してください。前もって感謝します! –

関連する問題