我正在创建一个Qt应用程序,在这里我将iOS与BLE板连接起来。
void EasyConnect::startDiscovery()
{
discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
discoveryAgent->setLowEnergyDiscoveryTimeout(5000);
connect(discoveryAgent, &QBluetoothDeviceDiscoveryAgent::deviceDiscovered, this, &EasyConnect::addDevice);
// connect(discoveryAgent, QOverload<QBluetoothDeviceDiscoveryAgent::Error>::of(&QBluetoothDeviceDiscoveryAgent::error), this, &Device::deviceScanError);
// connect(discoveryAgent, &QBluetoothDeviceDiscoveryAgent::finished, this, &Device::deviceScanFinished);
discoveryAgent->start(QBluetoothDeviceDiscoveryAgent::LowEnergyMethod);
}
在阅读了near中的ble组件后,我像这样连接Android设备:
void EasyConnect::connectToService(QBluetoothAddress address)
{
m_control = new QLowEnergyController(address);
connect(m_control, &QLowEnergyController::serviceDiscovered, this, &EasyConnect::serviceDiscovered);
// connect(m_control, &QLowEnergyController::discoveryFinished,
// this, &DeviceHandler::serviceScanDone);
connect(m_control, static_cast<void (QLowEnergyController::*)(QLowEnergyController::Error)>(&QLowEnergyController::error),
this, [this](QLowEnergyController::Error error) {
Q_UNUSED(error);
qDebug() << "Cannot connect to remote device.";
});
connect(m_control, &QLowEnergyController::connected, this, [this]() {
qDebug() << "controller connect.";
m_control->discoverServices();
});
connect(m_control, &QLowEnergyController::disconnected, this, [this]() {
qDebug() << "controller disconneted.";
});
// Connect
m_control->connectToDevice();
}
我在Android系统上找到了Mac地址
QBluetoothDeviceInfo
但是iOS没有从布尔那里得到苹果电脑地址,只有UUID。我试着在doc上在线搜索,但是我没有找到关于通过uuid连接ios和蓝牙服务的东西。
有一个模式转换uuid在mac地址或有一个库连接服务ble设备和ios与UUID。
没有一种方法可以通过在iOS上扫描来获取可扩展外围设备的MAC地址。这意味着您可能需要在BLE外围板上查找或添加一些附加数据,以便在BLE扫描期间能够识别它。
有关更多详细信息,请参阅此答案:获取蓝牙低能外围设备的MAC地址
如果您使用设备作为外围设备,则应使用QLowEnergyController查看此方法。我创建了一个包含QLowEnergyController实例的类,并使用它。以下是我在应用程序中使用的部分代码:
void BLEAdvertisementCommunicator::startAdvertisingService() {
mController = QLowEnergyController::createPeripheral(this);
mAdvertisingData.setDiscoverability(QLowEnergyAdvertisingData::DiscoverabilityGeneral);
mAdvertisingData.setIncludePowerLevel(false);
mAdvertisingData.setLocalName("MyApplication");
QLowEnergyServiceData serviceData;
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
serviceData.setUuid(QBluetoothUuid(serviceUuid));
auto service = mController->addService(serviceData, mController);
connect(mController, SIGNAL(connected()), this, SLOT(onDeviceConnected()));
connect(mController, SIGNAL(disconnected()), this, SLOT(onDeviceDisconnected()));
connect(mController, SIGNAL(error(QLowEnergyController::Error)), this, SLOT(onError(QLowEnergyController::Error)));
mResponseData.setServices({QBluetoothUuid(serviceUuid)});
mController->startAdvertising(QLowEnergyAdvertisingParameters(), mAdvertisingData,
mResponseData);
}
我正在尝试制作一个应用程序,它使用Android的新蓝牙低能耗API。为此,我从API Level18附带的BLE示例开始。 当我读到Android不能充当外围设备时,我将Android手机置于中央模式,扫描周围的BLE设备。为此,我用一个模拟心脏传感器的北欧平台做了一些测试。一切都以完美的方式运作! 多谢了。 编辑:经过一些艰苦的测试,我在AOSP页面上提出了一个问题。这里可以查
ap.connectBLEDevice(OPTION | deviceId, CALLBACK) 连接低功耗蓝牙设备。可直接传入一个字符串作为 OPTION.deviceId。 OPTION 参数说明 名称 类型 必填 描述 deviceId String 是 蓝牙设备 id 错误码说明 error 描述 12 链接失败 代码示例 <script src="https://gw.alipayobj
我是为iOS设备开发的新手。我是苹果的长期用户,今年Spring将完成我的电气工程学士学位。我目前正在为一个设计课程做一个项目,对蓝牙低能耗以及如何在iOS(5和6)中实现它有一些疑问。 首先介绍一下这个项目的背景。我们正在为一座建筑物设计一个占用检测系统。该计划是在整个建筑中,将BLE模块连接到沃尔沃茨。这些设备将与用户的智能手机通信,并向后端系统提供位置信息。我们希望这个系统只需要很少的用户交
连接设备 接口说明 用于连接 扫描出来的蓝牙设备。 参数说明 字段 类型 必须? 说明 device RKBLEDevice 是 蓝牙设备 示例代码 Swift: RokidMobileSDK.binder.connect(device: RKBLEDevice) Objc: [RokidMobileSDK.binder connect:device]; 断开设备 接口说明 用于断开已经连接的
连接蓝牙设备 接口说明 接口需传入蓝牙名称(蓝牙address重启后会变) 参数说明 字段 类型 必须? 说明 name String 是 设备名称 举个大栗子 RokidMobileSDK.binder.connectBT(name, new IBTConnectCallBack() { @Override public void onConnectSucceed(BTDevic
有人知道如何添加蓝牙低能耗作为设备要求,只允许iOS应用程序在蓝牙LE设备上可用吗?谢啦