我要求使用蓝牙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时,我的应用程序在蓝牙上没有收到任何数据包。正如我上面提到的,我尝试过this post的建议。
我错过了什么吗?我不需要在我的应用程序中做任何改变波特率的事情吗? RFComm通道是否自动调整波特率?
我使用的是Android 2.1-update1平台。
此致 Jagmeet
答案 0 :(得分:3)
我找到了问题的答案。
我的申请中是否需要做任何改变波特率的事情?
答案:不,我们不需要在客户端做任何改变波特率的事情。 RFComm通道自动调整波特率。