跳转至

Android SPP连接蓝牙设备注意事项

2023-03-27 更新文档
  • 2023-03-27 更新文档

使用SPP协议

尝试连接蓝牙设备时,最好新开一个线程。然后用远程设备的MAC地址来重启获取一下。

1
2
3
4
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