gpt4 book ai didi

android 蓝牙 rfcomm 连接太慢

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:31 26 4
gpt4 key购买 nike

我正在使用以下代码创建从我的 HTC One X 到 SENA 蓝牙 ESD110 串行模块的不安全 rfcomm 连接:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(addr);
BluetoothSocket socket = null;

try{
socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString(SERVICE_UUID));

mBluetoothAdapter.cancelDiscovery();

socket.connect();
sendMessage(socket,"working!");
socket.close();

这里的重点是连接到具有自动配对的模块,一切正常,但建立连接大约需要 15 秒。

调试保持在:

socket.connect();

持续 15 秒,然后才将字符串连接并传输到模块(这需要 1 秒)。

在连接到 MAC 地址之前,手机是否可能正在处理一些其他数据(服务发现等),我如何才能让它连接得更快?还是 HTC 硬件问题?

最佳答案

编辑 如果服务发现速度慢是您的问题,您可以尝试通过直接使用对 createRfcommSocket 方法的反射来跳过整个服务发现来避免这种情况 - 我在我的 BT-SPP 中这样做是出于其他原因相关项目 - 看起来像这样:

BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter();
BluetoothDevice bd = bta.getRemoteDevice(mac);
Method m = bd.getClass().getMethod("createRfcommSocket",new Class[] { int.class });
bt_connection = (BluetoothSocket) m.invoke(bd, Integer.valueOf(1));

前评:一定要一直扫描吗?如果您可以选择记住 Mac,您可以更快地连接。恕我直言,漫长的等待时间来自于发现——只有当这真的完成时你才能连接(不是在 mBluetoothAdapter.cancelDiscovery(); 之后直接完成)——这可能需要一些时间..

关于android 蓝牙 rfcomm 连接太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com