問題タブ [android-ble]
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.
java - Android BLE - RSSI 値による呼び出し、振動、および書き込みの特性
私は Android と Java を初めて使用しますが、まだあきらめたくありません。このプロジェクトでは、BLE 用の Android Studio サンプルを使用しています。 https://github.com/googlesamples/android-BluetoothLeGatt
私の目的に関連するサンプルコードやアドバイスがあれば、正しい方向に向けてください。:)
RSSI 値が特定のしきい値に達したときに、電話を鳴らしたり、振動させたり、カスタム特性に書き込んだりしたいと考えています。StopRing または StopVibrate ボタンを押さない限り、鳴り続けるはずです。別の BLE デバイスが特性を読み取り、ブザーを鳴らして応答できるように、(しきい値に違反した場合) 特性に書き込む必要があります。
1) いくつかのサンプル コードを読み、ボタンがクリックされたときに電話を鳴らし、振動させ、書き込む (または停止する) 方法を確認しました。ただし、今では RSSI 値を 10 ミリ秒ごとに読み取るのに役立つタイマーがあり、以下の updateRssi 関数呼び出しは基本的に、電話アプリに表示される RSSI 値を更新します。更新 RSSI 内 (RSSI < -threshold 条件内) にバイブレーションまたはリング関数呼び出しを追加できますが、リング/バイブレーションが鳴り、着信音/バイブレーション パターンが終了する前に停止します。
RSSI 値を GATT から取得した後、RSSI 値が条件を満たしているかどうかを確認し続け、その後、無期限に鳴って振動する別の方法に切り替えるにはどうすればよいでしょうか? if (RSSI < -threshold) 条件内でインテントを作成できますか? そして、上記のアクションを実行するはずのメソッドが意図を受け取るようにしますか? (以下は、DeviceControlActivity 内のメッセージ ハンドラーのスニペットです)
2) 以下では、Gatt サーバーから RSSI 値を取得するたびに、カスタム特性に書き込むかどうかを決定します。RSSI 値は 10 ミリ秒ごとに読み取られるため、RSSI 値がしきい値を超えている限り、writecharacteristic 関数が呼び出される可能性があります。フォーラムを検索しているときに、Android BLE スタックがあまり安定していない、特に連続した特徴的な書き込みが多いと彼らが言っているのを聞きました。私の場合は大丈夫ですか?
どうもありがとうございました!
編集: タイマーを停止して (新しい RSSI の読み取りとハンドラーの呼び出しを停止するため)、電話を振動させて鳴らす (レイアウト上のボタンが押されるまで) だけに進むことにしました。
EDIT2:実際には、バックグラウンドで実行されるサービスが必要です...
android - android - API レベル 22 で廃止された stopLeScan() & startLeScan() - これを stopScan() および startScan() に置き換えるにはどうすればよいですか?
Android 5.1.1 では stopLeScan() と startLeScan() が非推奨になっていることがわかりました。stopLeScan() および startLeScan() メソッドの置き換えに問題があります。ここに私の次のコードがあります:
これらは私が問題を抱えている行です:
これらの stopLeScan() & startLeScan() メソッドを stopScan() & startScan() メソッドに置き換えるにはどうすればよいですか? どんな提案も素晴らしいでしょう!ありがとう。
ios-bluetooth - IOS アプリを Android の BLE デバイスに接続するために必要な BLE デバイスの UUID を取得する方法を知りたいです。
実際、私は BLE が初めてで、Android では、利用可能なデバイスを検索している場合、「8A:WS:YV:23:D7」のようなアドレスを取得しました。 IOS で同じデバイスを使用すると、このように「212C543B-9728-197D-B4F4-F4F74CABC963」のような UUID が与えられ、両方がモバイル アプリを BLE デバイスに接続するために使用されるため、私の問題は、両方の側で使用される予定のデータベースで、DB をサーバーに保存したいのですが、Android 経由でアップロードすると、アドレスと共に保存されます。IOS のサーバーから同じプロファイルを開くと、 UUIDの代わりにアドレスを取得したため、デバイスはまったく接続できません。iOSアプリをAndroidのBLEデバイスに接続するために必要なBLEデバイスのUUIDを取得する方法を知りたいのですが、その逆も同様です。
altbeacon - Android ビーコン ライブラリ バージョン -- 2.3.5 で TI センサー タグが検出されない
モバイル デバイスのモデルと OS のバージョン -- Nexus 5、API 23
Android ビーコン ライブラリ バージョン -- 2.3.5
私は TI(Texas Instruments) のセンサー タグを使用しており、ファームウェアは TI から提供されています。すべてのビーコンで同じ 2541 チップセットが使用されます。このライブラリを使用して検出しようとしましたが、didRangeBeaconsInRegion() コールバック内にありますが、beacons.size がゼロ サイズに出力されます。
さて、このチップセットを検出するには、どのような変更を行う必要がありますか?
詳細については、このチップセットを検出する (iBeacon 検出器) という名前の無料アプリがプレイストアにあります。
どんな助けでも大歓迎です。
ありがとうございました
android - BLE - コマンドを書き込んだ後に応答を取得する方法は?
「特定のプロトコル」を備えた BLE デバイスがあります。
心拍数の測定値を取得するコマンドを送信する必要があります (通知を使用)。
私の質問は次のとおりです。「送信コマンド」を書いた後、どうすれば応答を得ることができますか?
私の手順:
1) デバイスで BLE がサポートされているかどうかを確認します。
2) Bluetooth を有効にする
3) デバイスのスキャンを開始します
4) 自分のデバイス (スマートウォッチ) が見つかったら、それに接続します
5) 接続したら、「サービスの検出」を開始します。
6)onServicesDiscovered()
私は何をしなければなりませんか?
呼び出す前に (コマンドを送信) 書き込む必要がsetCharacteristicNotification()
ありますか、それともその逆ですか?
android - 接続されているすべてのデバイスに対して BluetoothGatt の読み取りおよび書き込み要求を同時に実行する方法は?
複数のbleデバイスを接続して読み書き操作を並行して行いたいですか?