問題タブ [bluetooth-oob]
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 "帯域外" (OOB) ペアリング?
私はインターネットを検索してきましたが、OOB ペアリングを正確に実装する方法については何も見ていません。ここの誰かが私を助けるためにいくつかのサンプルコードを教えてくれることを望んでいました. Android デベロッパー サイトのチャットの例では、このタイプのペアリングについてはまったく触れていません。
基本的に、ディスプレイ/IO メカニズムが組み込まれていない C++ で記述されたデバイスと安全にペアリングしたい Android タブレットがあります。ペアリングするタブレットは GUI/IO インターフェイスとして機能し、Bluetooth 経由でメッセージを送受信します。したがって、OOB ペアリング スキームを使用して、タブレットを各デバイスと安全にペアリングしたいと考えています。
OOB の概念は理解していますが、android.developers.com サイトで自分の Android クライアント コードを探しているときに呼び出す適切なメソッドを見つけるのが困難です。また、bluez の内容を見ても、C++ で記述されたサーバーで行うべきことがあまり見つかりません。
基本的な使用例は、ユーザーが USB 接続を介してタブレットをデバイスに接続することです。USB 接続は、各デバイスのキー/MAC アドレスの受け渡しを容易にし、その情報を使用して Bluetooth を相互にペアリングします。
USB の部分はわかりますが、クライアントとサーバーにキーと必要な情報を取得すると、両端を呼び出して正常かつ安全にペアリングするための正しい方法を追跡できないようです。
安全でない接続を介して話しているクライアント/サーバーが既にあるので、実際に問題を抱えているのは、実際に両端でペアリングすることだけです。ペアになると、今後のすべてのメッセージングに secureRFComm を使用できます。
android - Bluetooth ペアリング - シンプルな [キャンセル/ペアリング] ダイアログを表示するには?
この質問に対する簡単なテスト プロジェクトを GitHub で用意しました。
コンピューター画面から QR コードをスキャンし、データ (MAC アドレスと PIN またはハッシュ) を使用して Bluetooth デバイスと簡単にペアリング (ボンディング) する Android アプリを作成しようとしています。
人気のInstaWifi アプリに似ていますが、Classic Bluetooth 用です。
テスト目的で、バーコード スキャンはまだ行っていませんが、デバイスのリストを表示するだけです。
ユーザーがいずれかのデバイスに触れた後、MainActivity.javaでペアリングが試行されます。
残念ながら、ポップアップは引き続き PIN を要求します。
ソース コードで実際に PIN を指定したので、実際には別のより単純なシステム ダイアログが表示されることを期待していました (これは NFC OOB ペアリングを行うときに表示されます)。
ソリューションの検索から、setPin()メソッドがあることはわかっていますが、ここでは適用できません (またはそうですか?) - アプリだけでなく、スマートフォン全体を Bluetooth デバイスにペアリングしようとしているためです...
私の質問: Android OS で簡単な [キャンセル/ペアリング] ダイアログを表示するにはどうすればよいですか?
GitHub でBluetooth ペアリング要求文字列を検索しても、ヒントは示されませんでした...
更新: unrealsoul007 の提案 (感謝) で、MainActivity.javaのソース コードを更新したところ、単純な [キャンセル/ペアリング] ダイアログが表示されます。
ただし、ペアリング プロセスを完了する方法がわかりません。ダイアログが閉じられる前でもonActivityResult
呼び出されるためです。resultCode=0
android - 帯域外 (OOB) チャネルとして QR コードを使用する Bluetooth セキュア シンプル ペアリング (SSP)
Stollmann SDKを使用して PC と Android を正常に結合する Windows 7 アプリケーションがあります。Bluetooth MAC アドレス、ハッシュ、ランダマイザーの双方向交換は、 NFC を介して帯域外で実行されます。
残念ながら、Windows アプリケーションのソース コードはここでは共有できません。Android 側ではアプリは不要で、NDEF メッセージが受信されると、オペレーティング システムによって ( HandoverManagerによって) Secure Simple Pairingが実行されます。application/vnd.bluetooth.ep.oob
現在、一方向認証を使用して、スキャンされた QR コード (NFC ではなく) を介して OOB ペアリングを実行する Android アプリを作成しようとしています。
カスタム QR コードが PC 画面に表示され ( ZXing.Netによって生成されます)、Bluetooth MAC アドレス、ハッシュ、ランダマイザーが含まれます。
ただし、OOB ボンディングは Android ではまだ実装されていないようです -
私の質問:
OOB Bluetooth ペアリングは Android の NFC 経由でうまく機能するため、QR コードを介して同じことを行う (ハックな) 方法があると思いますか?
たぶん (クレイジーなアイデア)HandoverManager
偽の NDEF メッセージをフィードすることで?
ios - iOS デバイスと組み込み Linux 間の帯域外ペアリング
iOS 10デバイス (iPhone) と組み込み Linuxデバイス (カーネル バージョン 3.10、BlueZバージョン 5.35) の間で USB (iAP2 プロトコル、CarPlay) 経由でOOB ペアリングを実装しています。
私の質問は: BlueZ はこの種のペアリングをサポートしていますか? それに関する情報はどこにありますか?
私が今持っているもの:
- OBB ペアリングは iOS 側から問題なく動作します (たとえば、USB 接続が初めて確立された後、電話の「マイ デバイス」Bluetooth セクションに Linux デバイスがあります)。
- Linux アクセサリ側では、iPhone のMAC アドレスとリンクキーを受け取り、それを/var/lib/bluetooth/${self_mac_addr}/${recieved_iphones_mac_addr}/infoファイルに書き込みます。その結果、サービスの再起動時にデバイスが「ペアリング済み」であることを確認でき
bluetoothd
ます。
私が達成したいこと:
- 再起動せずに iPhone を Linux デバイスの bluez の「paired」セクションに追加し
bluetoothd
ます。 - 前述のファイルに書き込むために iPhone の名前を受け取ります (現在、名前として mac アドレスを使用しています)。
ios - BlueZ: MAC アドレスからデバイス名を取得
背景: iOS デバイスと組み込み Linuxボード間の OOB ペアリング (USB 経由) に取り組んでいます。現在、Linux 側では、Bluetooth リンクキー (将来の接続に必要) とmac アドレスを受信しています。
ps:この件に精通している場合は、この質問も見てください。
私の現在の実装では、MACアドレスをデバイスの名前として使用しています(詳細については、上記の質問へのリンクを参照してください)。これは、2回目bluetoothd
のサービスの再起動後に解決されています。
質問: BlueZ を使用して、Mac のみのデバイスの Bluetooth 名を取得する方法はありますか? これを C コードで使用し、BlueZ の DBus インターフェイスにアクセスします。