問題タブ [cbperipheral]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2906 参照

ios - 他のビューで使用するために CBPeripheral を保存する方法

ビュー コントローラー SViewController でいくつかの BLE 接続をセットアップし、他のビュー コントローラーで使用するために周辺機器を保存する必要があります。NSUserDefault オブジェクトを作成してそこに周辺機器を保存しようとしましたが、エラーが発生"Attempt to insert non-property value"し、挿入されませんでした。次に、それを NSData オブジェクトにラップして NSUserDefaults に保存しようとしましたが、エラーが発生"-[CBConcretePeripheral encodeWithCoder:]: unrecognized selector sent"してアプリがクラッシュしました。だから、それは間違いなくうまくいきませんでした。また、3 つの CBPeripheral 変数をグローバルにしようとしましたが、それに関して多くの問題に遭遇しました。(私はまだプログラミングに非常に慣れていません)。その後、どういうわけかそれらをキャッシュすることを検討しましたが、ここでは機能せず、時間を無駄にしないことを読みました.

CBPeripheral オブジェクトを保存して、他のビュー コントローラーでアクセスして初期化できるようにする方法を知っている人はいますか?

0 投票する
1 に答える
1896 参照

ios - 再検出せずに、既に接続されている CBPeripheral に直接書き込む

私のアプリでは、周辺機器の書き込み可能な特性にデータを書き込む必要があります。周辺機器をスキャンし、周辺機器を検出して接続し、サービスを発見し、特性を発見し、最後にターゲット特性に書き込むというプロセスに従うことで、これを行うことができます。

ここまでできたら、気になる CBPheripheral と CBCharacteristic のリファレンスを残しておきます。 さて、次回は、保存した Peripheral と Characteristic に直接書き込んでみようと思います。しかし、Bluetoothの警告を下回っています。Peripheral から切り離されていない場合、Peripheral の特性に直接書き込むことはできませんか?

BTBeaconTest[1421:60b] CoreBluetooth[WARNING] は有効な周辺機器ではありません

PS: 周辺機器から切断しませんでした。

0 投票する
1 に答える
2076 参照

ios - CBPeripheral writeValue: forDescriptor: でのクラッシュ

TI BLE Keyfob との接続を確立し、特性の記述子を取得した後、呼び出しを試みます

さまざまなオブジェクトがデバッガーで妥当に見えます。nsData は 1 バイトで、peripheral は iOS から返された有効な外観の CBPeripheral オブジェクトであり、descriptor は iOS から返された有効な外観の CBDescriptor です。

アプリがエラーでクラッシュする

* -[CBConcretePeripheral writeValue:forDescriptor:]、/SourceCache/CoreBluetooth/CoreBluetooth-59.3/CBConcretePeripheral.m:358 でのアサーションの失敗

なぜこれが起こっているのか、それをデバッグする方法について何か考えはありますか?

0 投票する
1 に答える
1019 参照

objective-c - Objective C を介して以前の Bluetooth デバイスに自動的に接続する

私のプログラムは、ユーザーが Bluetooth デバイスに接続できるようにし、UUID を保存します。次回アプリケーションを起動すると、以前に接続されていたデバイスに自動的に接続されます。

UUID を[NSUserDefaults standardUserDefaults]NSArray に保存しています。

retrievePeripheralsのメソッドを使用し、CBCentralManager保存した UUID の配列を渡すことで、最初のデバイスを取得して接続することができます。

私の問題は、エラーの処理方法がわからないことです。最初の UUID への接続に失敗したかどうかをプログラムに知らせて、次の UUID に進むようにします。didRetrievePeripheralsデバイスをオフにしても、デリゲート メソッドは特定の UUID を持つデバイスを取得するようです。

他の誰かが同じ問題を抱えていましたか?

0 投票する
6 に答える
4548 参照

ios - ペリフェラル名が NameKey に準拠していません

心拍数モニター周辺機器をシミュレートするアプリがあります (周辺アプリ)。データを受信して​​表示するアプリもあります (中央アプリ)。

中央アプリは、名前に基づいて、検出された周辺機器に接続することを決定しました。

問題は、名前が常に"iPhone".

広告は次のように行われます。

しかし、中央側では、内側に

- (void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)aPeripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI

name プロパティは変更されていません。

やるべきことはありますか?