0

おはようございます、これは Pavan です。corebluetooth に疑問があります。Bluetooth LE デバイスを使用しています。目標 c でコア bluetooth フレームワークを使用する にサンプル コードを記述し、bluetooth 名、UUID、RRSI 値を取得しました。セントラル マネージャー、ペリフェラル マネージャー、およびペリフェラル デリゲート メソッドを使用しました。私のコードは CBPeripheralManager デリゲート メソッドを実行しません。UUID kCBAdvDataServiceUUIDs = "00001C00-D102-11E1-9B23-00025B00A5A5"を1 つだけ与え 、残りのサービスを取得できません。

ここでは、アラーム設定、ベテリー レベル、日付と時刻の設定を取得する必要があります。私はあなたのサンプルプロジェクトを使用しましたが、以下の結果が得られました。名前で見つかったペリフェラル: Optional("name")

UUID: 48D98C88-4FAC-A584-839D-D06D953B941D
RSSI: -71
Advertisement Data: ["kCBAdvDataServiceUUIDs": (
    "00001C00-D102-11E1-9B23-00025B00A5A5"
), "kCBAdvDataTxPowerLevel": 8, "kCBAdvDataIsConnectable": 1]

次のエラーで周辺機器から切断できませんでした:Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." UserInfo=0x165d4000 {NSLocalizedDescription=The specified device has disconnected from us.}

周辺:

何が問題なのかわかりません。私を助けてください。

ここでコードを試しました: http://www.filedropper.com/btbackground-master

4

1 に答える 1

0

あなたの問題についてもう少し説明していただけますか。あなたはそれが1つのUUIDのみを与えると言います

これは、サービス UUID のアドバタイズ データであり、サービス UUID の不完全なリストを返し、周辺機器によって管理されます。

サービス UUID の完全なリストを取得するには、discoverServices で周辺機器に接続した後にそれらを検出する必要があります

あなたがそうしているようです:

[peripheral discoverServices:@[[CBUUID UUIDWithString:@"0x1811"]]];

0x1811 UUID を持つサービスのみを検出します。すべてのサービスを見つけたい場合は、呼び出す必要があります

[peripheral discoverServices:nil];

ペリフェラルからの切断に失敗したのは、ペリフェラル側の問題のようです。周辺機器がすでにデバイスを切断しているため、切断できなかったことを示しているだけです。

とにかく、あなたの問題は切断エラーですか、それともサービスの検出ですか? あなたの質問からは明確ではないからです。

于 2015-10-29T14:48:45.330 に答える