問題タブ [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.
android - アプリが Bluetooth LE デバイスから切断されていることを確認するにはどうすればよいですか?
接続しているデバイスが 2 つあります。アプリを終了すると、デバイスから切断されます。どちらも同じプロセスを経ますが、アプリを強制終了するまでデバイスの 1 つが接続を維持することがあります。
デバイスには、まだ接続されていると認識されていることを確認するインジケーター ライトがあり、アプリの他のインスタンスは、最初のインスタンスを強制的に閉じるまで接続できません。以下のログでは、最初にリストされたデバイスが接続されたままになっています。
gatt.close() を呼び出した後、BluetoothManager を取得し、接続されているデバイスのリストで自分のデバイスを探します。リストにあります。
からBluetoothGattCallback
このクラスは、コマンド キューに追加されます。
android - BluetoothGATT を使用しない BluetoothDevice の切断
私のアプリは BLE ペリフェラルと通信します。場合によっては、その周辺機器が既に接続されている状態でアプリが起動されることがあります。次のように呼び出してデバイスを取得できます。
次に、アドレスまたは UUID に基づいて connectedDevices をフィルタリングできます。ただし、BluetoothDevice には切断メソッドがありません。切断するには、BluetoothGATT インスタンスが必要です。しかし、BluetoothGATT インスタンスを取得するために私が見ることができる唯一の方法は、呼び出すことです
これには非常に長い時間がかかります。これに加えて、connectGatt を呼び出した後に返される BluetoothGatt インスタンスは、disconnect() を呼び出したときに実際に周辺機器を切断しているようには見えません。
だから私の質問は:
- connectGattを呼び出さずに接続されたBluetoothDeviceを切断する方法はありますか?
- すでに接続されているデバイスの connectGatt に時間がかかるのはなぜですか?
- 接続された BluetoothDevice で connectGatt を呼び出すことは有効ですか?
ありがとうございました
android - ジンバル「BeaconSighting」リスナーが不規則に動作する
Android でランタイムにジンバル ビーコン距離の変更を取得しようとしています。ビーコンに接続でき、Android アプリにも同じことが反映されます。
しかし、アプリで変更された RSSIを取得できません。以下は私のコードです。
以下は私のログ出力です。
ここに問題があります。
ログ「beacon1」と「beacon2」がランダムまたは不規則に出力されます。「 BeaconEventListener 」がこのような動作をする理由がわかりません。ほとんどの場合、まったく印刷されません。このため、移動中にモバイルとビーコンの間の距離を取得できないため、障害は発生しません。
編集
より多くのエラー ログを抽出できました。logcat 出力の最後の 2 行を追加しました。
どんな助けでも大歓迎です。
android - Android BLE startDiscovery() コールバックは、場所のアクセス許可があっても発生しません
アプリは最小バージョン 18 で 22 を対象としており、Lollipop で期待どおりに動作します。Marshmallow アプリを起動するには、BLE の「細かい」権限と「粗い」権限が必要です。それらを追加しましたが、コールバックは発生しません。
Androidマニフェスト:
検出は UUID フィルタリングで行われます。
折り返し電話:
デバイスが見つかったことがわかりますが、コールバックは発生しません:
[Android] > [設定] > [アプリ] > [権限] で付与されている「位置情報」権限を確認しました。Nexus 9 でテストしています。何か考えはありますか?
PS。API 21 を試してみましたがadapter.getBluetoothLeScanner().startScan(filters, scanSettings, internalScanCallbackAPI21);
、まだ運がありません。同様のログですが、コールバックは発生しません。
PPS。レポートの遅延を設定すると、機能しました:
即時コールバックを設定0
してもリスナーが起動しない場合。
bluetooth-lowenergy - Google Play サービス API を使用して BLE をオンにする方法
Google Play サービス API の位置情報サービスを使用して ble をオンにしようとしました。まず、正常に接続しました。
onConnected() 内で、setNeedBle(true) を呼び出しました。
しかし、それは機能していません。ポップアップすら表示されません。何か不足していますか?または、ble をオンにできる他の位置情報ベースのサービス API はありますか。