【问题标题】:Android establishing bluetooth connection to paired device using thread not working in some devicesAndroid使用线程建立与配对设备的蓝牙连接在某些设备中不起作用
【发布时间】:2013-10-20 19:56:59
【问题描述】:

我正在为 OBD 开发 android 应用程序。 我已经在线程中编写了与 OBD 设备代码的蓝牙连接。 该线程适用于某些设备,但处理器非常好的设备有问题。

请告诉我如何管理这些设备?

提前谢谢你。

【问题讨论】:

    标签: android multithreading bluetooth obd-ii


    【解决方案1】:

    所以,如果我说对了,你的代码执行得太快了吗?如果您发送 1 个命令,然后什么也没有,它可以正常工作吗?

    我能想象的唯一问题是您发送命令的速度太快了。您将不得不采取一种巧妙的方式向 OBD 设备发送命令,或者在发送命令后让线程休眠。根本问题是你的设备可以发送多个命令,而 obd-ii 设备没有先处理它,然后它一次读取多个命令,这让他感到困惑。

    更新:

    当您发送命令时,OBD 协议会发送命令,并且 ECU 会根据命令做出响应,并且会响应您。在此期间,OBD-II 设备不遵循任何其他说明。在响应之后,它会查看缓冲区并处理该命令。将其视为一次只能处理 1 个命令的单个线程。

    标准,OBD-ii 设备等待的时间是 200 毫秒。然后它会向您发送回复。您可以通过将超时设置得较低来更改此设置。 (查看 ELM-327 的 AT 命令),或在命令后添加 1,以便 OBD-II 设备知道当他找到 1 个可能的答案时它应该做出响应。

    【讨论】:

    • 谢谢埃里克。据我了解需要在蓝牙连接线程中添加线程睡眠代码。让我知道你的 cmets。
    • 是的,您可以通过试验更好地了解问题,并制定可行的解决方案。今晚(8 小时后)将添加更多信息,使其成为更好的解决方案。
    • Eric,未创建蓝牙套接字。
    • 所以你不能连接一个快速的处理器?建立连接后是否发送命令?
    猜你喜欢
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多