- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试在我的项目中使用蓝牙时遇到问题。在以前的版本中,我使用 HC-05 蓝牙模块,它在连接任何设备后立即为我提供一个简单的串行连接。现在项目发展了,我们选择使用 SIM800H,因为它为我们提供了 GSM+Bluetooth。
当我连接任何安卓设备时,它会给我一些配置文件,但不会给我 SPP。我可以正常配对,但在使用任何 SPP 服务器应用程序 (https://stackoverflow.com/a/4037619/2637661) 时,我永远无法从我的设备发送或获取数据。如果我从 Android 应用程序开始连接,它说它正在连接,而 SIM800 给我 URC,我回应:
+BTCONNECTING: "34:c7:31:aa:37:5b","SPP"
AT+BTACPT=1
OK
+BTCONNECT: 1,"Android",34:c7:31:aa:37:5b,"SPP"
但它停留在服务器模式,我无法使用命令 AT+BTSPPSEND 或 AT+BTSPPGET,如文档所述。
另一方面,如果我像文档所说的那样从我的设备开始连接:
AT+BTCONNECT=1,4 // Device is 1 and SPP profile is 4
OK
AT+BTSPPSEND
>I type anything here + ctrl+z
SEND FAIL
在 Android 端什么也得不到。
此外,在这两种情况下,连接都会在大约 30 秒后断开,除非我关闭 SIM800H 并重新打开,否则我无法重新建立连接。
使用APP模式也没有成功(连接成功后立即发送字符串“SIMCOMSPPFORAPP”进行透明通信)。
SIM800H固件版本为
AT+CGMR
Revision:1309B07SIM800H32_BT
我尝试使用以下应用
GSM 端工作完美,我每次尝试都可以发送/接收 TCP 消息。
有没有人有使用这个模块的经验?感谢阅读!
更新:
我正在使用一个简单的草图来与模块的序列号对话,不知道它是否相关,但就在这里。
#define SIM800_POWER 23
void setup() {
Serial.begin(9600);
Serial1.begin(19200);
Serial.print("Setting all up");
pinMode(SIM800_POWER, OUTPUT);
Serial.print(".");
delay(500);
digitalWrite(SIM800_POWER, HIGH);
Serial.print(".");
Serial.println("OK");
}
void loop() {
if(Serial1.available()){
Serial.write(Serial1.read());
}
if(Serial.available()){
Serial1.write(Serial.read());
}
}
在尝试了 Andrii 的 answer 之后我得到了什么:
Setting all up..OK
AT
OK
AT
OK
AT
OK
AT+BTPOWER=0
OK
AT+BTPOWER=1
OK
AT+BTCONNECT=1,4
OK
+BTCONNECT: 1,"Will",d4:87:d8:77:37:0b,"SPP"
AT+BTSTATUS?
+BTSTATUS: 5
P: 1,"Will",d4:87:d8:77:37:0b
C: 1,"Will",d4:87:d8:77:37:0b,"SPP"
OK
AT+BTSPPSEND
> SIMCOMSPPFORAPP
SEND FAIL
最佳答案
似乎AT+BTSPPSEND
没有任何参数仅适用于从客户端(您的 SIM800H)向服务器(其他 SIM800,而不是您的 Android 设备,除非您的 Android 设备实现 AT 指令支持)发送 AT 指令。对于数据发送,您应该使用 AT+BTSPPSEND
和在收到>
之后符号 发送SIMCOMSPPFORAPP
关键字,然后在收到 SEND OK
后响应发送命令 AT+BTSPPSEND=<LENGTH_OF_YOUR_DATA>
然后,在收到 >
之后符号,发送您的数据直到 Ctrl+Z
代码例如:
AT+BTSPPSEND
> SIMCOMSPPFORAPP
SEND OK
AT+BTSPPSEND=5
> HELLO
SEND OK
^Z
哪里HELLO
- 是你的数据,5
在 AT+BTSPPSEND=5
是 HELLO
的长度字符串。详见SIM800H_BT_Application_Note .
更新由 bold 小而重要的答案部分选择(感谢 hlovdal )
关于android - SIM800H 上的蓝牙 SPP 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265982/
我想获取双 SIM 卡手机中两张 SIM 卡的 SIM 卡序列号/ID。有没有办法获取它们?提前致谢。 最佳答案 import java.lang.reflect.Method; im
我知道我们可以使用 TelephonyManager 类检索单个 Sim 卡的信息。但是如何检索有关多张 SIM 卡的信息?比如说,我的手机丢了,有人更换了其中一个插槽中的 SIM 卡。我如何收到包括
我想使用 Python 中的 R 包 fracdiff 和 arfima。我使用 rpy2 作为 导入了这个库 from rpy2.robjects.packages import importr f
这个问题在这里已经有了答案: How to get sim id from iphone (1 个回答) Programmatically get own phone number in iOS
我正在构建一个网络监视器应用程序。在这里,我已成功实现了所有功能,例如跟踪 Wifi 或移动数据的数据使用情况,但我想知道哪个 SIM 卡连接到互联网并使用移动数据。 使用下面的代码,我可以知道我的双
我有一个检测来电的 Android 应用程序,我需要改进这个应用程序以在 duos 移动设备上运行。所以我创建了一个在 list 中注册的广播接收器以进行操作:电话状态已更改,并且在我的 onRece
过去几天我一直在寻找这个,我才知道: “Android开箱即用不支持双卡,是厂商自定义修改,没有公共(public)API控制。” 以下链接中提供了一个解决方案,但它不适用于我的手机三星 Galaxy
我被搜索了有关 NFC SIM 卡的信息,发现 such explanations关于他们在这里和那里: For those who want to use near field communicat
我有一部带 2 张 SIM 卡的 Android 手机,我想检测来电的目标——是 SIM 1 还是 SIM 2。是否可以从通话信息中获取目标号码? 最佳答案 最后我使用这段代码得到了解决方案。希望它对
我有一部带 2 张 SIM 卡的 Android 手机,我想检测来电的目标——是 SIM 1 还是 SIM 2。是否可以从通话信息中获取目标号码? 最佳答案 最后我使用这段代码得到了解决方案。希望它对
我想检查哪个 SIM 卡正在为双卡 android 手机拨出电话。阅读本文 Android : Check whether the phone is dual SIM . 工作起来很有魅力,可以检测
我想在双卡设备中获取两个 sim 号码。 最佳答案 使用 API > 21 需要权限android.Manifest.permission.READ_PHONE_STATE. public class
我尝试为单个 SIM 设备配置 EAP-SIM 并成功连接。现在我想在双 SIM 设备上配置特定的 SIM 卡。 我的观察是在单个 SIM 设备中配置 EAP 时,没有规定指定 SIM 身份。那么如何
如何在具有双 SIM 卡的 Android 中发送短信用于广播而不是 Intent ?如何在android中检测双卡?用户想要选择 sim 卡来发送短信广播。在 android 中设置用于在 andr
我正在开发一个应用程序,我需要知道来电是来自 sim 1 还是 sim 2。在某些设备中,广播接收器会检测到它,但并非所有设备都发生这种检测。 如何检测到 sim 1 或 sim 2 有来电? 最佳答
I searched and read all the questions and answers similar to this question but non is solving my pro
有没有办法以编程方式检查 Android 中的 sim 1 或 sim 2 的移动数据是否处于 Activity 状态? 我还想获得数据处于 Activity 状态的运营商提供商。 情商:sim 1
我想在收到短信时获得 SIM 卡的唯一 ID(line1number 或 simserialnumber...)。它适用于单 SIM 卡。是否可以使用多 SIM 卡? 最佳答案 多 SIM 卡支持仅添
我正在尝试检查我的移动设备是否是双 sim 卡,sim1 是否准备就绪,sim2 是否准备就绪,我已使用 java 反射完成此操作,现在我想知道 sim1 是否正在漫游以及 sim2 是否正在漫游,如
我有双卡 Android 智能手机。我知道 android SDK 不支持双卡双待设备。我想在默认插槽上访问 sim 的 sim 运营商名称。但是当我运行程序时,它给了我一个空字符串。以下是我的代码:
我是一名优秀的程序员,十分优秀!