問題タブ [btle]
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 - Android と Bluetooth LE デバイスのペアリング
AndroidフォンとAndroid Wearスマートウォッチ間のBluetooth(Low Energy、または具体的には4.0)接続を試しています。私の場合、Samsung Galaxy S6 と Moto 360 (第 1 世代) を使用しています。どちらも Bluetooth LE をサポートしています。
私は、Bluetooth デバイスは最新のプロトコルを使用することを好むべきだと考えました。どちらのデバイスも従来の BT と BTLE をサポートしていますが、BTLE 経由で接続する必要があります。しかし、Ubertooth One ( http://ubertooth.sourceforge.net/hardware/one/ ) で収集されたデータを観察したところ、そうではないことがわかりました。どうやら、ペアリングの前に Moto 360 から ADV_IND ブロードキャスト パケットを取得しているようです。電話をクリックして時計とペアリングすると、ブロードキャストが停止し、CONNECT_REQ またはそれ以上のデータ パケットは観測されません。
Ubertooth は従来の BT パケットを認識できないため、スマートウォッチが従来の BT と BTLE の両方のチャネルでブロードキャストし、電話が単に従来の BT を介して接続するためではないかと考えています。
ios - SwiftでBTLEサービスからView Controllerにデータを送信する
私は大まかにこのチュートリアルに従っています
https://www.raywenderlich.com/85900/arduino-tutorial-integrating-bluetooth-le-ios-swift
BTLE ペリフェラルからストリーミング データを読み取るアプリを作成します。このアプリは、ViewController から BTLE サービスからマイクロコントローラーにデータを送信する方法を明確に示していますが、他の方向でデータを取得する方法がわかりません。
BTService オブジェクトのデータにアクセスでき、コンソールに出力できますが、BTService オブジェクトから textBox を更新するにはどうすればよいでしょうか?
大量の iOS Swift チュートリアルを見つけることができますが、それらはすべてビュー コントローラーからトリガーされることに焦点を当てているようです。ビューコントローラーからリアルタイムでデータを観察することについてはあまり見つかりません。
ios - ユーザーが手動でアプリをバックグラウンドから終了したときに BTLE 周辺機器を取得する方法は?
説明 :
コア bluetooth フレームワークを使用して BTLE 周辺機器に接続し、周辺機器の識別子をデータベースに保存しています。
同時に、周辺機器との再接続を処理するために周辺機器を配列に保存しています。
しかし、ユーザーが手動でアプリを終了すると、配列が空になります。
そのため、それらの周辺機器を再度接続することはできません。
これで、データベースに周辺機器の識別子があります。
私はそれについて読んだところ、デリゲートメソッドがあることがわかりました
周辺機器を取得しますが、何も返しません。
周辺機器を再び入手するにはどうすればよいですか?
上記のドキュメントもチェックします。周辺機器に再接続する方法について言及したという点で
ios - 別のアプリが接続するまで Bluetooth 周辺機器が見つからない
Bluetooth LE 心拍数モニターに接続できるフィットネス アプリがあります。ここ数年、私はそれで問題はありませんでした。現在、iOS 10 用に更新していますが、奇妙なことが起こっています。このように周辺機器をスキャンすると...
...心拍数モニターが見つかりません -- スキャンは開始されますが、didDiscoverPeripheral
呼び出されません。競合他社のアプリ #1 を試すと、HRM からのデータが検出されて表示されますが、それを終了して自分のアプリに戻っても、まだ HRM を見つけることができません。競合他社のアプリ #2 を試すと、HRM からのデータを見つけて表示します。それを終了して自分のアプリに戻ると、アプリはすぐに接続され、期待どおりに動作します。競合他社のアプリ #1 は HRM を見つける別の方法を持っているようですが、競合他社のアプリ #2 は HRM を見つけるだけでなく、自分のアプリが後で見つけられるようにします。このシナリオは奇妙に思えますが、100% 再現可能です。
何が起こっているかについて、次の 2 つの推測を行うことができます。
1) 競合他社のアプリ #2 では、HRM を検出できるようにする設定が有効になっています。しかし、BTLEアクセサリとの通信は一方向だと思うので、これは可能ではないと思います。
2) iOS 10 には、デフォルトで無効になっているある種のプライバシー設定がありますが、競合他社のアプリ #2 はそれを有効にしており、私のアプリは後で HRM を見ることができます。
これは意味がありますか、それとも何が悪いのかについて誰かが理論を持っていますか?
android - 位置情報のアクセス許可を要求せずに Android アプリを BTLE デバイスとペアリングするにはどうすればよいですか?
Android アプリで BTLE デバイスをスキャンするには、ACCESS_COARSE_LOCATION
またはACCESS_FINE_LOCATION
. しかし、アプリはペアリングするために BTLE デバイスをスキャンする必要がありますか?
これは、睡眠モニターとペアになって次のように正当化するアプリで特に見られます。
Android 6.0 Marshmallow の時点で、Android では、Bluetooth Low Energy スキャンを実行するアプリは、最初にデバイスの位置情報サービスにアクセスするための許可を要求し、取得する必要があります。
そのため、Sense はセットアップ中に位置情報サービスへのアクセス許可を求めます。Sense のペアリングを完了するには、位置情報サービスへのアクセスを許可する必要があります。
これは本当に必要ですか?ユーザーの位置情報を必要とせずにペアリングするにはどうすればよいでしょうか? OS の Bluetooth ダイアログを介して、アプリとは別にデバイスとペアリングすることができました。