[解決済み] Android: BluetoothのUUIDはどのように機能するのですか?
質問
bluetooth の UUID が何を示しているのか理解できません。UUID はプロトコルを示すのでしょうか (例.
RFCOMM
)? もしそうなら、なぜ
createRfcommSocketToServiceRecord()
メソッドの名前に rfcomm を指定しているのに、UUID を要求しているのでしょうか?BluetoothChat のサンプル コードに、一見任意でハードコードされた UUID があるのはなぜですか?
私の疑問は、次のような理由で生じました。
この質問
にあるように、4.0.4を実行しているデバイスがリフレクションを使って(外部の非アンドロイドデバイスに)接続しようとすると、ヌルポインター例外が発生するためです。しかし、その質問に対する解決策は、私のために動作しません。
UUID muuid = device.getUuids()[0].getUuid();
は例外を発生させます。
Edit
: シリアルポートサービスのUUIDを以下のようにハードコーディングすることで、この問題を解決しました。
この回答
(使用する
UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
を使用して安全でない rfcomm ソケットを作成するために UUID を提供する必要があるのはなぜなのか、さらに不可解に思っています。
createInsecureRfcommSocketToServiceRecord(),
を使用して安全でないrfcommソケットを作成するのに、リフレクションメソッドを使用しないのはなぜなのか、さらに不可解です。
どなたか教えてください。
どのように解決するのですか?
Bluetooth では、すべてのオブジェクトは UUID によって識別されます。 これには、サービス、特性、その他多くのものが含まれます。 Bluetooth では、標準オブジェクトに割り当てられた番号のデータベースを維持し、ベンダー (予約のために十分な料金を支払った) に対してサブレンジを割り当てています。 このリストはここで見ることができます。
https://www.bluetooth.com/specifications/assigned-numbers/
もしあなたが標準的なサービス (シリアルポート、キーボード、ヘッドセットなど) を実装しているなら、そのサービスの標準的な UUID を使用するべきです - そうすれば、あなたが開発していないデバイスと相互運用できるようになります。
カスタム サービスを実装している場合、互換性のないサード パーティ製デバイスが、そのサービスを別のものだと思って使用しようとしないようにするため、固有の UUID を生成する必要があります。 最も簡単な方法は、ランダムなものを生成し、その結果をアプリケーションにハードコードすることです (そして、もちろん、サービスに接続するデバイスで同じ UUID を使用します)。
関連
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?