問題タブ [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 に答える
1941 参照

ios - CBCentral からの特性値の更新

iOS アプリ (ペリフェラル) から OSX アプリ (中央) にメッセージを送信することに成功しました。

セントラルで特性値を更新してペリフェラルから読み取ろうとすると、問題が発生します。

CBCharacteristicProperties を Notify 以外に変更すると、セントラルは「書き込みは許可されていません」というエラーでキャラクタリスティックへのサブスクライブに失敗します。

私の理解では、Central から Peripheral への書き込みを行うには、Peripheral で上記の行とこのイベントを組み合わせて使用​​する必要があります。

これを Central で使用して、特性の値を更新します。

私が間違っていることを教えてください。私がやろうとしていることを行う方法を示すサンプルプロジェクトは、高く評価されます。

ありがとう

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

ios8 - CBService/CBCharacteristic UUIDString が nil を返す

OSXアプリと初めて通信するときに新しいUUIDを生成するiOSアプリがあり、それが保存されます。このようにして、さまざまなデバイスにさまざまな特性識別子を持たせることができます。

通話後

OSX アプリの「didDiscoverServices」メソッドで、「didDiscoverCharacteristicsForService」で、新しいデバイスの UUID を調べようとしてこれを行います。以前に話したことがあるかどうかを確認し、そうでない場合は保存します。

問題は、代わりにcharacteristic.UUIDを使用すると、nilが出力されることです。「不明(<46c35c38 c4994106 b6d351c9 8d900368>)」が表示されます。これは、処理したい形式ではありません。

理由はありますか?

私が気付いたもう 1 つのことは、LightBlue で繰り返し説明したことをテストして、アプリが何を宣伝しているのかを確認した後、特定のサービス/特性が動かなくなって消えないように見えることがあるということです。電話を復元して、一度それらを取り除きます。これは正常ですか?

どうもありがとう

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

ios - CoreBluetooth を使用してファイル転送速度を改善する

現在、OSX アプリ (中央) から、writeValue を使用して書き込み可能な特性を介して 4Kb のイメージを iOS アプリ (周辺) に送信しています。

画像サイズが制限を超えているため、次の関数で writeValue を複数回使用しています。

私の問題は、必要以上に時間がかかり、約 30 秒かかることです。

奇妙なことに、画像を送信するときに CBCharacteristicWriteType.WithoutResponse を使用しているにもかかわらず、応答が返ってきます。

これは、ペリフェラル側で私の特徴的なセットアップを行う方法です。

NOTIFY_MTU に 20 から 900 までのさまざまな値を試してみましたが、値が大きいほど、writeValue の実行回数は少なくなりますが、各パッケージの到着に時間がかかります。

転送がはるかに高速に実行されるのを見てきましたが、それを改善する方法について何か提案はありますか?

ありがとう

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

ios8 - Bluetooth が再起動されない限り、CBCentral は周辺機器のサービスを見つけることができません

CoreBluetooth、iOS、Today Extension (周辺) および OSX (中央) を介して通信する 2 つのアプリがあります。

1 - セットアップ プロセス (iOS アプリ x OSX アプリ): 接続し、保存されているデータを交換し、切断します。

2 - アプリの主な機能の使用 (iOS Today 拡張機能 x OSX アプリ): 接続、データ交換、および切断。

ステップ1と2の間でiPhoneのBluetoothをオフにしてから再度オンにしない限り、OSXアプリはiPhoneを見つけて接続しますが、OSXアプリでperipheral.discoverServicesが呼び出された後、Today Extensionから0サービスを見つけます。

Bluetoothをオフにしてからオンにすると、すべてが期待どおりに機能します。どうなり得るか?どんな助けでも大歓迎です。ありがとう!

更新: OSX で LightBlue を使用した後、Bluetooth を再起動しない限り、手順 1 で使用した UUID サービスがアドバタイズされ続け、Bluetooth を再起動したときにのみ、手順 2 で使用した UUID が表示されることを確認できました。

0 投票する
0 に答える
78 参照

ios7 - iOS 7.1 BLE ペリフェラル アドバタイズの問題

広告とスキャンを同時に行うアプリケーションを作成しました。うまく機能していますが、問題があります。しばらくすると、mz 周辺機器の広告が停止します。

再起動しようとしましたが、電話とアプリケーションがまだ機能していません。

周辺機器の実装は次のとおりです。

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

ios - Core-Bluetooth を使用して「接続できない」周辺機器をシミュレートできますか

アプリで「接続不可」の広告を送信したいのですが?

startAdvertsingメソッドを見ると、CBAdvertisementDataLocalNameKeyとのみCBAdvertisementDataServiceUUIDsKeyがサポートされていると書かれています。

CBAdvertisementDataIsConnectableこれは、をシミュレートするために NO に設定できないことを意味しiBeaconますか?

「接続できない」周辺機器をシミュレートする他の方法がある場合は、お知らせください。

advertisementData- アドバタイズしたいデータを含むオプションの辞書。advertisementDataディクショナリの可能なキーは、CBCentralManagerDelegateプロトコル リファレンスで詳しく説明されています。ただし、ペリフェラル マネージャ オブジェクトでサポートされているキーは 2 つだけですCBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey