問題タブ [gatt]
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.
ios - iOS Bluetooth デュアルモード; すでに接続されている BR/EDR (A2DP/HFP) ステレオ ヘッドセットに BLE (GATT) を同時に接続する
Ina ステレオ ヘッドセットに期待されるように、従来のプロファイル (HFP、A2DP、AVRCP) を使用して、Bluetooth を備えたステレオ ヘッドセットを開発しています。ただし、iOS 用のリモート コントロール アプリを展開し、それを他の従来のリンクと同時に使用したいのですが、設計で使用しているデュアルモード チップセットが期待どおりに動作しません。
ヘッドセットは周辺機器として設定され、iOS デバイスが中心として機能します。そのため、周辺機器は BLE サービスを (特定の 128 ビット UUID で) アドバタイズし、すべて問題ありません。どの中央からでも周辺機器をブラウズできますが、クラシック プロファイルに接続していない場合 (オーディオをストリーミングしていないときなど) に限られます。
HFP や A2DP で接続しているときに、デバイスが BLE をアドバタイズできないようです。ただし、同じチップセットが BLE セントラルとして機能し、他の BLE ペリフェラルをスキャンして接続し、同時に A2DP 経由でオーディオをストリーミングするデモを見たことがあります。ただし、そのセットアップでは、デバイスは iPhone に接続された A2DP シンクとして機能し、BLE 経由で BLE 周辺機器として機能する 3 番目のユニットにスキャン/接続していました。したがって、クラシック Bluetooth とスマート Bluetooth の両方を同じデバイスにポイントツーポイントで接続することはできません。
Bluetooth Classic プロファイルをサポート/接続している間は周辺機器として機能できないというデュアルモードの制約はありますか? その場合、中央モードのみがサポートされますか?
参考までに、私は CSR の 8670 チップセットを使用しています。
アップデート
新しい回答が追加されました。今まで私の以前の回答を明確化/クリーンアップしなかったことをお詫びします-時間が経つのが早いです!
android - Bluetooth Low Energy (BLE) リンク経由でデータを送信する方法は?
Bluetooth を検出して接続できます。
ソースコード - -
Bluetooth 経由でリモート デバイスに接続します。
ステータスの Gatt コールバック:
リモート BLE デバイスにコマンドを送信したいのですが、その方法がわかりません。
コマンドが BLE デバイスに送信されると、BLE デバイスは、アプリケーションが受信できるブロードキャスト データによって応答します。
disconnect - BLE レイヤーから切断イベントを取得する方法 - Bluez/Linux
Bluez /Linux 上の GATT サーバーから切断イベントを取得する方法は、Bluez スタックの切断イベントに対応しています。
ただし、断線検出は GATT 層で行うため、GATT 層で断線が検出されるまでに時間がかかります。切断検出の遅延は、多くのアプリケーションにとって問題になります。
Bluez は、BLE レイヤーで接続/切断するための HCI API を提供します。
hci_le_create_conn() によって作成された BLE 接続が現在切断されていることを示す HCI イベントをアプリケーションがキャッチする方法。
bluetooth-lowenergy - BLE の GATT プロトコルを理解する
最近、BLE モジュールを備えたマイクロコントローラ ベースのデバイスの開発を学び始めました。このデバイスは、センサーから取得したアナログ読み取り値を、これから開発する Android アプリケーションに送信することになっています。
GATTの仕組みについて私が研究したことは次のとおりです。
- マイクロコントローラーベースのデバイスは GATT サーバーになります。
- Android アプリケーションは GATT クライアントになります。
- 通信の観点から見ると、microntroller ベースのデバイスはスレーブであり、Android アプリケーションはマスターです。
質問:
- GATT クライアントからコマンドを受信し、応答 (float 値になる) を送信するために定義する必要がある属性の数を決定するにはどうすればよいですか? Android がコマンドを送信するための属性と、microncontroller ベースのデバイスが Android にデータを送信するための属性の 2 つの異なる属性が必要ですか? または、単一の属性を使用できますか?
- GATT はイベント ドリブン システムのようです。
2.1: Android がマイクロコントローラ ベースのデバイス (クライアントからサーバー) にコマンドを送信すると、どのようなイベントが生成されますか?
2.2: Android アプリケーション (サーバーからクライアント) によって読み取られる属性にデータが書き込まれると、イベントが生成されますか? - Android アプリケーション (GATT クライアント) は、読み取り/書き込みコマンドを使用して、microncontroller ベースのデバイス (GATT サーバー) と通信する必要があります。また、GATT サーバーは Notify/Indicate を使用してデータを GATT クライアントに渡す必要があります。私の理解は正しいですか?
この BlueGiga BLE112 Moduleを開発に使用しています。
これまでに作成した gatt.xml ファイルは次のとおりです。
service - UUIDを忘れないLightBlue
その後、pimrary サービスの UUIDS を変更しましたが、LightBlue は変更を認めません。新しい電話を使用すると、UUID が変更されることに気付きますが、もう一度変更すると、LightBlue 新しい電話は以前の UUID のままになります。広告データの「表示」を押すと、UUID が正しい値であることに気付きました。
古いUUIDを「忘れる」にはどうすればよいですか
ありがとうトーマス
android - BluetoothGatt : android.os.DeadObjectException エラーを解決する方法は、Android で発生しましたか?
Bluetooth Low Energy のAndroid 4.3で開発するためのページBluetooth Low Energyをフォローしています。
私はすでに Bluetooth をオンにし、デバイスをスキャンして BLE デバイスに接続できます。
しかし、デバイスに接続しようとした後、BluetoothGatt : android.os.DeadObjectException
BLEデバイスのサービスを検出する前に表示されます。(device.connectGatt)
(mBluetoothGatt.discoverServices)
BluetoothGatt : android.os.DeadObjectException
次のようなログを表示する前に
Discover サービスの前に BLE デバイスに接続したときの完全なログは次のようになります。
なぜE/BluetoothGatt( 8804): android.os.DeadObjectException
起こったのかわかりません。このエラーが発生した後、実行時に BLE デバイスのサービスを検出できませんmBluetoothGatt.discoverServices
。
BLE デバイスを切断して再接続する必要があります。そして、それはうまくいきます。
Android の設定で Bluetooth のデータを消去し、再度 BLE デバイスに接続すると. またエラーが発生しました...
また、 connect の直後に切断される場合があるため、再度接続する必要があります。
誰かが同じエラーまたは状態を持っていますか? この問題を解決する方法を教えてください。数日混乱しました...
前もって感謝します! --------------------------------------------------編集 - - - - - - - - - - - - - - - - - - - - - - - -
サービスのコードは次のようになります。
パッケージcom.ampak.pace;
android - Android での不安定な BLE 接続
Bluetooth Low Energy 向けに Android 4.3 で開発するためのガイドラインに従っています。
AndroidフォンからBLEデバイスに接続しようとすると、BLEデバイスに接続した直後に切断されることがあります。
接続コードは次のとおりです。
結果のログは次のとおりです。
切断の主な理由は次のようです。
なぜこれが起こるのか誰か説明できますか?