我正在尝试提高Android蓝牙的传输速度。我尝试使用蓝牙API的RFComm套接字将2.7MB缓冲区从一个Android设备转移到另一个设备(参见下面的代码)。完成需要约70秒。我通过手机附带的蓝牙功能将此方法与“共享”进行了比较。 “共享”功能提供了非常好的性能(传输2.7MB文件大约需要15秒)。
“共享”功能与使用蓝牙API有何不同?如何复制“共享”方法以获得优化的传输速度?
谢谢,
蓝牙API测试代码:
服务器端 - 安装在一个Android设备上
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mServerSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("DeviceName", MY_UUID);
socket = mServerSocket.accept();
mInStream = socket.getInputStream();
int totalByte = 1;
while (totalByte < 2718720)
{
int bytesAvailable = mInStream.available();
if (bytesAvailable > 0) {
totalByte += bytesAvailable;
byte[] buffer = new byte[bytesAvailable];
mInStream.read(buffer);
}
}
客户端 - 安装在其他Android设备上
mClientSocket = device.createInsecureRfcommSocketToServiceRecord(
MY_UUID);
mClientSocket.connect();
mOutStream = mClientSocket.getOutputStream();
byte byteValue = 0;
for (int i=0; i<2718720; i++) {
byteValue++;
mOutStream.write(byteValue);
}