Android以外のデバイスからの着信接続をリッスンするためのソケットを開こうとしています。
Parcelable[] uuidExtra = device.getUuids();
String t = uuidExtra[0].toString();
t = t.toUpperCase();
Log.i("UUID: ", t);
このコードスニペットは、Bluetoothデバイスによって提供されるサービスのUUIDを提供します。LogCatからの出力は次のとおりです。
00001105-0000-1000-8000-00805F9B34FB
これは、ObexObjectプッシュプロファイルのUUIDだと思います。デバイスの製造元から、デバイスはプロトコルでのみサポートされていると言われているため、これを想定しています:ObexPushProfile。
たとえば、Parcelable[]
配列の2番目の要素にアクセスしようとすると、出力は次のようになります。
07-12 13:29:36.305: E/AndroidRuntime(6293): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
それによって、私の配列には1つのオブジェクトしか含まれていないと確信できます。
それでは、Android固有のBluetooth関連のものに移りましょう。
私はこのUUIDを次のように使用しています:
try {
tmp = adapter.listenUsingRfcommWithServiceRecord(device.getName(), UUID.fromString(t));
} catch (IOException e) {
Log.e(TAG, "FAILED BECAUSE: " + e.getMessage()); }
例外は、LogCatに以下を出力します。
FAILED BECAUSE: Not able to register SDP record for: "name of the device"
この例外を数時間グーグルで調べた後でも、デバイスのリスニングソケットを開く方法がわかりません。
助言がありますか?前もって感謝します!