![](/img/trans.png)
[英]How can I use serial communication (port) via Android Bluetooth to send data?
[英]How to send serial data via Bluetooth to an unspecified device?
我将以下代码用于Arduino Uno:
#include <SoftwareSerial.h>
SoftwareSerial device(2, 3);
void setup()
{
device.begin(9600);
}
void loop()
{
device.println("33,89,156,203,978,0,0;");
}
没有设置要发送的特定设备。
如果要在便携式计算机(运行Ubuntu 14.04)上接收数据,只需致电:
sudo rfcomm bind rfcomm0 [MAC ADDRESS] 1
和
screen /dev/rfcomm0
在另一个终端实例中,它可以工作。
如何使用Android应用程序实现相同的行为? 以下示例代码指定了一个设备。 我找不到其他代码。 此外,它仅在我在笔记本电脑上侦听这样的传入连接时才有效:
sudo rfcomm listen rfcomm0 [MAC ADDRESS]
我希望我的Android应用程序像Arduino示例一样工作。 我该如何实现?
不幸的是,Android似乎没有低级的Classic Bluetooth API,该API允许您执行广播类型的行为。 这是有道理的,因为Android打算进入功率受限的设备,而有源无线电会消耗能量。 如果需要使用Classic Bluetooth(3.x)和Android处理发送或接收广播类型的行为,则可能需要编写自定义ROM。
但是,有一个称为低功耗蓝牙(4.x)的规范,它可以减少能耗,但降低数据吞吐量/降低吞吐量。 特别是广告模式。 正在扫描的Android设备可以接收称为“信标”的设备广播的简短广告数据包。 使用此模式的协议是Apple的iBeacon和Google的Eddystone。
在此处查找涉及广告的示例应用程序:
另请注意,Android设备并不总是支持BLE外围设备模式,这是使Android设备像信标一样工作所需要的。
相关链接: Android设备可以充当iBeacon吗?
并列出了经过测试的设备的详细列表: http : //altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html
因此,在您的情况下,您仍然应该可以将Sony Xperia Z3用作扫描仪,但必须购买/建造一个信标进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.