2

Android アプリからの呼び出しを使用して Nexus One に UUID を問い合わせてgetUuids()いるところ、以下が返されます。

 0 th UUID found is 00001105-0000-1000-8000-00805f9b34fb
 1 th UUID found is 00001106-0000-1000-8000-00805f9b34fb
 2 th UUID found is 0000110a-0000-1000-8000-00805f9b34fb
 3 th UUID found is 0000110c-0000-1000-8000-00805f9b34fb
 4 th UUID found is 00001112-0000-1000-8000-00805f9b34fb
 5 th UUID found is 0000111f-0000-1000-8000-00805f9b34fb
 6 th UUID found is 0000112f-0000-1000-8000-00805f9b34fb
 7 th UUID found is 00001200-0000-1000-8000-00805f9b34fb

00001101-0000-1000-8000-00805f9b34fb私の質問は、このリストに SPP ( ) の標準 UUID が表示されないのはなぜですか?

S2 Bluetooth Terminal アプリを使用して、Android デバイス (Xoom) からこの Nexus One 電話にシリアル データを送信できることをテストしました。このデータ転送で使用されている UUID は何ですか?

4

1 に答える 1

1

S2 Bluetooth Terminalアプリケーションは00001101-0000-1000-8000-00805F9B34FBハードコードされています ( smali で確認済み)

次の点に注意してください。

  • getUuids() のドキュメントを見ると、次のことに気付きました。

    このメソッドは、リモート デバイスから UUID を取得するためのサービス検出手順を開始しません。代わりに、サービス UUID のローカルにキャッシュされたコピーが返されます。新しい UUID が必要な場合は、fetchUuidsWithSdp() を使用します。

    試しましたfetchUuidsWithSdp()か?

  • S2 Bluetooth Terminalは便利ですが、実際には SDP デバッグ用のツールではありません。個人的には、BlueZユーティリティ (または Windows の場合は同様のもの - ここでは Linux をお勧めします) を使用して、実際にデバイスによってどのサービスがアドバタイズされているかを確認したいと思います。このようにして、(少なくとも) 問題をデバイスの 1 つに絞り込むことができます。

    編集:Windowsでは、 Bluetooth Network Scannerを使用できます

以下は、BlueZ ツールを使用してサービスをスキャンする方法の小さなサンプルです (このサンプルでは GPS 受信機を使用しています)。

czajnik@lapcio:~$ hcitool scan
Scanning ...
    00:1C:88:11:0E:CC   PENTA-GPS
czajnik@lapcio:~$ sdptool  browse 00:1C:88:11:0E:CC
Browsing 00:1C:88:11:0E:CC ...
Service Name: SPP Slave
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
于 2012-10-09T07:36:52.787 に答える