2013-04-03 33 views
8

コアのBluetoothフレームワークを使用しています。私は、このフレームワークを使用して周辺機器を作成しようとしています。私の周辺機器を使用してデータを広告:CoreBluetoothでは、広告キー「Manufacturer Data」が許可されていません。

はここ
manager=[[CBPeripheralManager alloc]initWithDelegate:self queue:nil]; 
[manager startAdvertising:dictionary]; 

私が広告のために渡していた辞書がある:広告キー「メーカー:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys: 
            @"name", CBAdvertisementDataLocalNameKey,@"some other data",CBAdvertisementDataManufacturerDataKey,nil]; 

が、私は警告を取得したアプリケーションを実行していたときにCoreBluetoothでは「データ」は許可されていません。

と、中央のCBAdvertisementDataManufacturerDataKeyキーを使用して送信した「その他のデータ」は取得できません。私は中央の側で名前を得ている。どうすれば広告データで他のデータを送信できますか?

+0

解決方法を見つけましたか? – civiac

+0

@civiac:いいえ、実際はメーカーのデータを変更できません。私はデモアプリケーションを行っていたので、name_someデータ(_と区別)を使用し、中央側で処理を完了しました。さらに私の場合、私の必要に応じてBLEデバイスを手に入れました。 –

答えて

9

startAdvertising上CBPeripheralManagerドキュメントが述べたよう:

あなたが宣伝したいデータを含むオプションの辞書。 advertisingDataディクショナリの可能なキーについては、「CBCentralManagerDelegate Protocol Reference」を参照してください。 つまり、周辺マネージャオブジェクトでサポートされているのは、CBAdvertisementDataLocalNameKeyとCBAdvertisementDataServiceUUIDsKeyの2つのみです。

これらのキーは、iOSデバイスがセントラルモードにあり、周辺機器(読み取り専用)を検出している場合にのみ適用されます。私はこの制限がペリフェラルモードで動作しているときになぜこのような制限があるのか​​わからないので、バグレポートを提出してみてください。

+1

デバイスがApple iPhoneであるため、それらは周辺機器モードになっています。あなたのアプリが望んでいるものではありません。だからメーカーのものはすべてAppleのデータであり、すべてのデバイスはiPhoneだ。あなたが変更できるのはデバイスの名前で、あなたのアプリが提供するサービスを指定します(iOSは他のアプリケーションが提供するサービスと組み合わせることができます)。 –

+0

OK、意味があります。明確にしてくれてありがとう! – russbishop

+0

@russbishopねえ、あなたは私の質問を見ることができますか?あなたの助けが必要です。 https://stackoverflow.com/questions/46402904/is-there-any-way-access-manufacturer-data-from-ios-device – sorunluadam

関連する問題