1

Motorola RAZR を使用して、TI の CC2540 ベースの BLE デバイス (TI のキーフォブと connectblue OLP425 の別のデバイスを持っています) に接続しようとしています。ソースにアクセスできません。

このコードでデバイスに接続しようとしましたが、私が理解できない最大のことはUUIDです.

iPad 3 にアプリをダウンロードしたところ、デバイスの UUID が 00000000-0000-0000-ff31-1a064f8c5966 であることがわかりました

private static final UUID SPP_UUID = UUID.fromString("00000000-0000-0000-ff31-1a064f8c5966");
BluetoothDevice bd  =BluetoothAdapter.getDefaultAdapter().getBondedDevices().iterator().next();
//I only have I device paired that is the Bluetooth Low Energy Device so using the first Device returned by the iterator is fine.
    try {
        BluetoothSocket bs = bd.createRfcommSocketToServiceRecord(UUID);
        bs.connect();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

私が得るのは、logcatでサービスの検出に失敗したことだけです

ほとんどすべての例で、誰もが使用しています

00000000-0000-1000-8000-00805f9b34fb

アプリをさらに進むと、バッテリー サービスが UUID 0x180f であることがわかります

単純な 10 進数値であるこのサービスの値を読み取るアプリを作成したいだけです

過去にBLEデバイスとのペアリングに成功した人はいますか?

ありがとうございました

ジョナサン

4

1 に答える 1

0

CC2540 に心拍数モニターを接続できました。CCDebugger を使用してファームウェアをフラッシュし、値を読み取ることができた UUID 0000180d-0000-1000-8000-00805f9b34fbas を使用しました。

Motorola_BLE_profile サンプル アプリをいくつか変更して使用します。

primaryServices = mGattService.getGattPrimaryServices(device);
if (primaryServices == null) {
  String message = "Connection failed !";
  Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
  return;
}
for (i = 0; i < primaryServices.length; i++) {
  Log.v(TAG, "primary service " + primaryServices[i]);
  if (primaryServices[i].equalsIgnoreCase(hrmUUID)) {
    try {
      status = mGattService.connectGatt(device, hrmUUID, callback1);
      if (status == true){
        mDevice = device;
        mLeState = CONNECTING;
        BluetoothLeReceiver.isDevicePickerPending = false;
      } else {
        String message = "Connection failed !";
        Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();   
      }

} catch (Exception e) {
  Log.e(TAG,"Exception while calling gatt Connect");
}
return;
if (i == primaryServices.length) {
 Log.v(TAG,"Primary Service not found");
 String message = "Connection failed !";
 Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();

}

于 2012-09-19T19:11:17.773 に答える