1

我正在努力实现这个目标:我有一个蓝牙设备连接到我的安卓手机。鉴于此设备可以振动,是否可以向设备发送振动命令?

我已经研究了 android 开发者网站上的蓝牙 api 和振动 api,但没有什么能明确回答我的问题。

4

4 回答 4

2

在蓝牙 HFP(免提)规范中,没有命令(AT 命令)向对等设备发送振动。根据手环“来电振动提示”的技术规范,一旦从手机向手环发送AT指令指示来电,手环会在本地产生振动,手机不会询问/请求振动。

如果你想让对端设备振动,可能你必须使用你自己定义的命令(AT命令),命令被对端设备识别。

于 2013-01-28T06:08:35.930 回答
1

我正在摆弄同样的问题。经过几天的反复试验,我终于让它工作了。我认为这取决于您回答 HF 命令的速度,以及正确的行尾([13][10]“COMMAND”[13][10])。

这是我的 DroidScript,它有效。它没有清理干净,但它可以工作。

https://gist.github.com/t-oster/68a568ac4c4e133f67ac

适用于我的手镯的确切顺序是:

CR 是 ASCII 码 13,LF 是 ASCII 码 10

> AT+BRSF=0<cr>
< <cr><lf>+BRSF:0<cr><lf>
< <cr><lf>OK<cr><lf>
> AT+CIND=?<cr>
< <cr><lf>+CIND: ("service",(0,1)),("call",(0,1))<cr><lf>
< <cr><lf>OK<cr><lf>
> AT+CIND?<cr>
< <cr><lf>+CIND: 1,0<cr><lf>
< <cr><lf>OK<cr><lf>
> AT+CMER=3,0,0,1<cr>
> <cr><lf>OK<cr><lf>

从那时起我可以发送

<cr><lf>RING<cr><lf>

使其振动。

于 2015-02-20T15:17:00.683 回答
1

我很高兴更新这个线程,我能够以编程方式使用 AT 命令以正确的方式振动 BT 手镯。所以我的应用程序基于 Android 示例中的蓝牙聊天应用程序。以下是我遵循的步骤:

  1. 将设备连接到手机
  2. 设备遵循 BT 免提配置文件规范。这需要通过 AT 命令“握手”。所以我模仿了这种命令交换(对手镯的命令进行硬编码响应)
  3. 握手完成后,我根据 BT Hands-Free profile 规范向 RING 和 +CLIP 发送 AT 命令:
  4. 在收到应用程序的最后一组响应时,手镯会振动。

这看起来很简单,但如果不了解 BT Hands-Free 配置文件规范和示例 AT 命令,这几乎是不可能的。

@bt_user:感谢您的指点,让我走上了研发的正确轨道。

于 2013-02-07T01:57:12.510 回答
0

我使用 Thomas Oster 的部件和我在网上找到的一个示例开发了一个 java android 版本

https://gist.github.com/shimondoodkin/a582d910045ab06ab68c

于 2015-04-20T12:55:28.353 回答