首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android通过AT命令与HFP设备通信

Android通过AT命令与HFP设备通信
EN

Stack Overflow用户
提问于 2014-10-13 14:26:53
回答 3查看 6.8K关注 0票数 5

我试图控制一个蓝牙手镯振动功能通过HFP (手自由配置文件)在Android。我已经能够连接到手镯并访问输入和输出流。

我的目标是模拟一个来电,以便蓝牙手镯开始振动(这似乎是唯一的方法)。要做到这一点,我使用AT命令。在第22页的id=238193蓝牙规范中,您可以看到建立服务级别连接的握手。我需要建立这个连接才能使用"+CIEV“命令(参见握手第48页)。

但是当我的手镯返回命令"AT+CIND=?“我不知道该如何回应。对于如何使用"CIND:“命令回答,我找不到任何提示。此外,我也不知道如何发送确认(它只是“好”吗?)

这甚至可能是完全错误的做法。每一项建议都会受到赞赏。我只在堆栈溢出上找到了一个post,它在某种程度上帮助了我,我找到的其他帖子都没有回答。顺便说一句,im使用的是带有Android 4.1.2的智能手机。手镯支持HFP和HSP。提前谢谢。

更新2014年10月29日

通过RFCOMM套接字在此时建立=====连接=====

代码语言:javascript
复制
        // read AT+BRSF=0 from device
        byte[] buffer = new byte[200];
        mBluetoothSocket.getInputStream().read(buffer);
        Log.d(TAG, new String(buffer).trim());

        //write answer BRSF: ...
        mBluetoothSocket.getOutputStream().write("+BRSF=20\r".getBytes());
        mBluetoothSocket.getOutputStream().write("OK\r".getBytes());

        // read AT+CIND=? command
        buffer = new byte[200];
        mBluetoothSocket.getInputStream().read(buffer);
        Log.d(TAG, new String(buffer).trim());

        //write answer CIND: ...
        mBluetoothSocket.getOutputStream().write("+CIND: (\"battchg\",(0-5)),(\"signal\",(0-5)),
           (\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0-3)),
           (\"callheld\",(0-2)),(\"roam\",(0,1))".getBytes());
        mBluetoothSocket.getOutputStream().write("OK".getBytes());

        // read AT+CIND?
        buffer = new byte[200];
        mBluetoothSocket.getInputStream().read(buffer);
        Log.d(TAG, new String(buffer).trim());

按照协议的程序,我应该收到"AT+CIND?“命令,然后我可以发送命令"+CIND: 5,5,1,0,0,0,0,0,0“,但是.我没有收到"AT+CIND?”命令。实际上我什么也没收到。我是不是遗漏了什么?发送"OK“不会改变任何事情.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-20 14:23:17

我正忙着解决同样的问题。经过几天的反复试验,我终于开始工作了。我认为这取决于你回答高频命令的速度,以及正确的行尾(“命令”)。

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

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

票数 2
EN

Stack Overflow用户

发布于 2018-07-08 09:06:30

另外,我发现的一个例子似乎几乎奏效了,它期望响应是顶部的,并以crlf尾随:"\r\n+BRSF=20\r\n“"\r\nOK\r\n”

我自己还在努力解决剩下的问题。

票数 2
EN

Stack Overflow用户

发布于 2014-10-14 06:40:20

请参阅蓝牙hfp 1.5规范,在该规范中,当没有任何呼叫设置时,您可以正常地理解CIEV响应,响应可以是+CIND =1,0,0,5,5注意:这些值基于hfp规范,在来电返回时+CIEV:,ind-指示呼叫设置,值为1,然后对手链发出命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26342372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档