我需要使用蓝牙 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 平台。
问候,贾格米特