Android SPP连接蓝牙设备注意事项
2023-03-27 更新文档
使用SPP协议
尝试连接蓝牙设备时,最好新开一个线程。然后用远程设备的MAC地址来重启获取一下。
| public ConnectThread(BluetoothDevice device) {
mmDevice = mAdapter.getRemoteDevice(device.getAddress());// get this device again
// ......
}
|
连接另一台蓝牙设备之前,先断开前一个设备的socket
如果当前连接意外断开,可以不关闭当前socket
| /**
* Stop all bluetooth threads
*/
public synchronized void stopAllBtThreads(boolean closeSocket) {
if (BTConstants.isDebug) Log.d(TAG, "stop all Bt threads");
if (mConnectThread != null) {
if (closeSocket) {
mConnectThread.cancel();
}
mConnectThread.interrupt();
mConnectThread = null;
}
if (mConnectedThread != null) {
if (closeSocket) {
mConnectedThread.cancel();
}
mConnectedThread.interrupt();
mConnectedThread = null;
}
recordBtStateAndPost(BTConstants.BLUETOOTH_STATE_NONE);
}
|
注意:如果不断开当前socket而去连接另一台蓝牙设备,是有可能同时接收到多个蓝牙设备的数据
传输的。只要它们跑在不同的线程中。
在最近的真机实验中(2016-12-29),同一台手机同时能SPP连接7个蓝牙设备。
7个是系统规定的连接上限。
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~
📖AndroidTutorial
📚AndroidTutorial
🙋反馈问题
🔥最近更新
🍪投喂作者
Ads