Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android蓝牙rfcomm连接速度太慢大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用以下代码从我的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连接速度太慢全部内容,希望文章能够帮你解决android蓝牙rfcomm连接速度太慢所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。