3

我需要使用蓝牙 SPP 以 1.15k 的速率从远程蓝牙设备收集蓝牙数据。我按如下方式连接到远程设备。

try {
  tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
  Log.e(TAG, "create() failed", e);
}
mmSocket = tmp;
}

public void run() {
  Log.i(TAG, "BEGIN mConnectThread");
  setName("ConnectThread");
  // Always cancel discovery because it will slow down a connection
  mAdapter.cancelDiscovery();
  // Make a connection to the BluetoothSocket
  try {
    // This is a blocking call and will only return on a
    // successful connection or an exception
    mmSocket.connect();
  } catch (IOException e) {
    connectionFailed();
    // Close the socket
    try {
      mmSocket.close();
    } catch (IOException e2) {
      Log.e(TAG, "unable to close() socket during connection failure", e2);
    }

对远程设备的连接请求成功,我可以以默认波特率 9600bps 接收数据。

但是当我将远程蓝牙适配器设备上的发送波特率更改为 1.15kbps 时,我的应用程序在蓝牙上没有收到任何数据包。正如我上面提到的,我已经尝试过这篇文章的建议。

有什么我错过的吗?我真的不需要在我的应用程序中做任何事情来改变波特率吗?RFComm 通道是否自动调整波特率?

我正在使用 Android 2.1-update1 平台。

问候,贾格米特

4

1 回答 1

5

我找到了我的问题的答案。

我真的不需要在我的应用程序中做任何事情来改变波特率吗?

答:不,我们不需要在客户端做任何事情来改变波特率。RFComm 通道自动调整波特率。

于 2012-06-06T03:58:34.017 回答