使用CocoaPods被卡住:Updating local specs repositories

本文介绍了解决CocoaPods中pod install遇到的问题,提供了使用pod install --verbose --no-repo-update命令的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pod update 试了还可以用

pod install 被墙了,请大家换成pod install –verbose –no-repo-update

WinRT 平台下 Qt 无法正确访问设备原生服务接口:正在搜索蓝牙设备... qt.bluetooth.winrt: Worker started qt.bluetooth.winrt: BTLE scan completed qt.bluetooth.winrt: onBluetoothLEDeviceFound: No device given qt.bluetooth.winrt: Discovered BTLE device: "79413831028628" "Bluetooth 48:39:f9:30:4f:94" Num UUIDs 0 RSSI: -62 Num manufacturer data 0 qt.bluetooth.winrt: Discovered BTLE device: "248235452300580" "AL_WBP" Num UUIDs 1 RSSI: -52 Num manufacturer data 0 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "135407187949798" "Bluetooth 7b:26:f1:56:78:e6" Num UUIDs 0 RSSI: -68 Num manufacturer data 1 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: onBluetoothLEDeviceFound: No device given qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "139883855153833" "Lck1_7F393F7F0AA9" Num UUIDs 1 RSSI: -58 Num manufacturer data 0 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "12916180417167" "Lck1_0BBF48587A8F" Num UUIDs 1 RSSI: -66 Num manufacturer data 0 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "263711541014828" "Q_BASH_EFD820B9B12C" Num UUIDs 1 RSSI: -78 Num manufacturer data 0 qt.bluetooth.winrt: onBluetoothLEDeviceFound: No device given qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "139885029570943" "Lck1_7F39857F397F" Num UUIDs 1 RSSI: -48 Num manufacturer data 0 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: onBluetoothLEDeviceFound: No device given qt.bluetooth.winrt: Discovered BTLE device: "265128349852752" "AIMA-1CE450" Num UUIDs 0 RSSI: -80 Num manufacturer data 1 qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Discovered BTLE device: "263711541014828" "Q_BASH_EFD820B9B12C" Num UUIDs 2 RSSI: -82 Num manufacturer data 1 qt.bluetooth.winrt: Updating device "Q_BASH_EFD820B9B12C" "EF:D8:20:B9:B1:2C" qt.bluetooth.winrt: Updating data for device "Lck1_7F39857F397F" "7F:39:85:7F:39:7F" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "Lck1_0BBF48587A8F" "0B:BF:48:58:7A:8F" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "Lck1_7F393F7F0AA9" "7F:39:3F:7F:0A:A9" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "Q_BASH_EFD820B9B12C" "EF:D8:20:B9:B1:2C" qt.bluetooth.winrt: Updating data for device "Q_BASH_EFD820B9B12C" "EF:D8:20:B9:B1:2C" qt.bluetooth.winrt: Updating data for device "Q_BASH_EFD820B9B12C" "EF:D8:20:B9:B1:2C" qt.bluetooth.winrt: Updating data for device "Q_BASH_EFD820B9B12C" "EF:D8:20:B9:B1:2C" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" qt.bluetooth.winrt: onBluetoothLEDeviceFound: No device given qt.bluetooth.winrt: Updating data for device "AL_WBP" "E1:C4:D1:F4:7D:24" "搜索完成,找到 8 个设备" qt.bluetooth.winrt: Using new low energy controller "创建AL_WBP控制器成功" qt.bluetooth.winrt: QLowEnergyControllerPrivateWinRTNew::connectToDevice qt.bluetooth.winrt: QLowEnergyControllerPrivateWinRTNew::registerForStatusChanges qt.bluetooth.winrt: Service discovery initiated qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::onServiceDiscoveryFinished Changing service pointer from thread QThread(0x1c2e7e78640) "BLE控制器完成对蓝牙设备所有服务的搜索,共发现 7 个服务:" {00001800-0000-1000-8000-00805f9b34fb} {00001801-0000-1000-8000-00805f9b34fb} {00001810-0000-1000-8000-00805f9b34fb} {0000fff0-0000-1000-8000-00805f9b34fb} {8e400001-f315-4f60-9fb8-838830daea50} {00001805-0000-1000-8000-00805f9b34fb} {0000180a-0000-1000-8000-00805f9b34fb} 找到目标服务 UUID: "{0000fff0-0000-1000-8000-00805f9b34fb}" 开始发现服务详情:currentService->discoverDetails() DiscoveringServices状态 qt.bluetooth.winrt: QLowEnergyControllerPrivateWinRTNew::discoverServiceDetails "{0000fff0-0000-1000-8000-00805f9b34fb}" qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::discoverServiceDetails Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt: QWinRTLowEnergyServiceHandlerNew::QWinRTLowEnergyServiceHandlerNew qt.bluetooth.winrt: QWinRTLowEnergyServiceHandlerNew::obtainCharList ServiceDiscovered状态 找到目标特征: "{0000fff4-0000-1000-8000-00805f9b34fb}" qt.bluetooth.winrt: QLowEnergyControllerPrivateWinRTNew::writeDescriptor QSharedPointer(QLowEnergyServicePrivate(0x1c2ed632c00)) 16 18 "\x01\x00" qt.bluetooth.winrt.service.thread: QLowEnergyControllerPrivateWinRTNew::writeDescriptor Changing service pointer from thread QThread(0x1c2e7e78640) qt.bluetooth.winrt: Could not obtain native service for Uuid "{0000fff0-0000-1000-8000-00805f9b34fb}" qt.bluetooth.winrt: Could not obtain native characteristic "{0000fff4-0000-1000-8000-00805f9b34fb}" from service "{0000fff0-0000-1000-8000-00805f9b34fb}" DescriptorWriteError 已开启特征通知 InvalidService状态 qt.bluetooth.winrt: Unregistering 0 value change tokens qt.bluetooth.winrt: QLowEnergyControllerPrivateWinRTNew::unregisterFromStatusChanges 设备已断开连接,服务可能失效
最新发布
07-24
<think>我们正在处理一个关于在Windows Runtime (WinRT)平台上使用Qt进行蓝牙低功耗(BLE)开发的问题。用户遇到的问题是:连接设备后无法正确发现服务详情,并且写入描述符失败。这通常与平台特定的权限或API使用方式有关。 首先,我们需要明确Qt在WinRT平台上对BLE的支持情况。Qt的BLE API(如QLowEnergyController等)在WinRT后端可能有一些限制或不同的行为。 可能的原因及解决方案: 1. **权限问题**:在WinRT平台上,应用需要声明蓝牙能力,并且在运行时可能需要请求蓝牙权限。在Qt中,我们可能需要通过WinRT的API来请求权限。 2. **服务发现流程**:在连接设备后,服务发现可能没有正确触发,或者需要等待一段时间。 3. **描述符写入失败**:可能是由于描述符的属性(如只读)或写入方式不正确。 4. **WinRT后端的限制**:Qt的WinRT后端可能对BLE的支持不完全,或者需要特定的处理。 **步骤1:检查权限** 在WinRT应用中,需要在清单文件中声明蓝牙能力。对于Qt应用,我们可以在`package.appxmanifest`文件中添加以下内容: ```xml <Capabilities> <DeviceCapability Name="bluetooth" /> </Capabilities> ``` 此外,在运行时,可能需要请求用户授权。在Qt中,我们可以使用`QWinRTFunctions`来请求权限。示例代码: ```cpp #include <QtWinRT> // 请求蓝牙权限 bool requestBluetoothPermission() { using namespace QtWinRT; auto result = await(QEventLoop::Deferred, [&] { return QWinRTFunctions::requestBluetoothAccessAsync(); }); return result; } ``` 在应用启动时调用此函数,确保获得蓝牙权限。 **步骤2:确保正确连接和服务发现** 在连接设备后,我们需要确保服务发现流程正确启动。使用`QLowEnergyController`: ```cpp QLowEnergyController *controller = QLowEnergyController::createCentral(deviceInfo); controller->connectToDevice(); // 连接成功后,开始服务发现 connect(controller, &QLowEnergyController::connected, this, [controller]() { controller->discoverServices(); }); // 当服务发现完成时 connect(controller, &QLowEnergyController::serviceDiscovered, this, [](const QBluetoothUuid &serviceUuid) { qDebug() << "Service discovered:" << serviceUuid; }); connect(controller, &QLowEnergyController::discoveryFinished, this, [controller]() { // 获取服务对象 QLowEnergyService *service = controller->createServiceObject(serviceUuid); if (service) { service->discoverDetails(); } }); ``` **步骤3:服务详情发现和描述符写入** 在服务详情发现完成后,我们可以获取特征和描述符。注意,写入描述符前需要确保描述符是可写的,并且写入的值符合要求。 ```cpp connect(service, &QLowEnergyService::stateChanged, this, [](QLowEnergyService::ServiceState newState) { if (newState == QLowEnergyService::ServiceDiscovered) { // 获取特征 QLowEnergyCharacteristic characteristic = service->characteristic(characteristicUuid); if (characteristic.isValid()) { // 获取描述符 QLowEnergyDescriptor descriptor = characteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); if (descriptor.isValid()) { // 写入描述符,例如启用通知 QByteArray value; // 根据协议,通常启用通知是0x0100,但具体取决于设备 value.append(0x01); value.append(0x00); service->writeDescriptor(descriptor, value); } } } }); // 处理描述符写入结果 connect(service, &QLowEnergyService::descriptorWritten, this, [](const QLowEnergyDescriptor &descriptor, const QByteArray &value) { qDebug() << "Descriptor written successfully"; }); connect(service, &QLowEnergyService::errorOccurred, this, [](QLowEnergyService::ServiceError error) { qDebug() << "Error:" << error; }); ``` **步骤4:处理WinRT后端的特定问题** 由于WinRT后端的实现可能不同,我们需要注意: - 确保在连接设备后等待足够时间再进行服务发现。 - 在写入描述符时,确保服务状态已经处于`ServiceDiscovered`,否则写入可能失败。 - 有些描述符可能受系统保护,无法写入,例如在WinRT上,某些描述符的写入可能需要特殊的权限或方法。 **其他注意事项:** - 使用Qt的最新版本,因为BLE支持在持续改进。 - 如果问题依旧,考虑使用WinRT的本地API(通过`WinRT::Devices::Bluetooth`)来操作BLE设备,然后与Qt应用集成。但这需要编写C++/WinRT代码,并可能涉及在Qt应用中使用COM对象。 **示例:使用WinRT API直接操作BLE设备(如果Qt API不可用)** 我们可以通过`QWinRTFunctions`调用WinRT API。例如,获取蓝牙设备: ```cpp #include <winrt/Windows.Devices.Bluetooth.h> #include <winrt/Windows.Devices.Bluetooth.GenericAttributeProfile.h> #include <QtWinRT/QtWinRT> using namespace winrt; using namespace Windows::Devices::Bluetooth; using namespace Windows::Devices::Bluetooth::GenericAttributeProfile; // 通过设备ID获取设备 winrt::hstring deviceId = ...; // 从Qt的设备信息中获取 BluetoothLEDevice device = co_await BluetoothLEDevice::FromIdAsync(deviceId); if (device) { // 获取服务 GattDeviceServicesResult servicesResult = co_await device.GetGattServicesAsync(); if (servicesResult.Status() == GattCommunicationStatus::Success) { for (auto&& service : servicesResult.Services()) { // 获取特征等 } } } ``` 但是,这种方法需要将异步操作与Qt的事件循环结合,可以使用`QWinRTFunctions::await`或者使用C++协程(如果编译器支持)。 **结论:** 用户的问题可能是由于权限不足或Qt WinRT后端在服务发现和描述符写入方面的限制。建议先检查权限,然后确保按照正确的流程操作。如果问题仍然存在,可能需要使用WinRT原生API进行BLE操作,并考虑将数据传递回Qt应用。 由于在WinRT平台上Qt的BLE支持可能有限,用户可能需要等待Qt的更新或使用混合方法(部分使用Qt BLE API,部分使用原生WinRT API)。 **相关问题:** 1. 在Qt WinRT平台上,如何正确请求蓝牙权限? 2. 如何通过Qt的BLE API在WinRT上发现BLE服务并获取特征? 3. 在WinRT平台上,使用Qt写入BLE描述符失败的可能原因有哪些? 4. 如何将WinRT原生BLE API与Qt应用结合使用?</think>### Qt WinRT BLE 开发问题解决方案 在 Windows Runtime (WinRT) 平台上使用 Qt 进行蓝牙低功耗 (BLE) 开发时,无法访问设备原生服务接口、服务发现失败以及写入描述符失败是常见问题。以下是系统性解决方案: --- ### 一、核心问题原因分析 1. **权限问题** WinRT 平台需要显式声明蓝牙权限,否则无法访问原生服务接口[^1]。 $$ \text{权限缺失} \rightarrow \text{服务发现失败} $$ 2. **UUID 匹配问题** WinRT 对 BLE 服务/特征的 UUID 格式要求严格(必须为完整 128 位格式)[^2]。 3. **异步操作处理** Qt 的 `QLowEnergyController` 在 WinRT 后端未正确处理异步操作回调。 4. **描述符保护机制** WinRT 对某些描述符(如 Client Characteristic Configuration)有特殊写入保护[^3]。 --- ### 二、解决方案步骤 #### 步骤 1:配置应用权限 在 `package.appxmanifest` 中添加蓝牙权限声明: ```xml <Capabilities> <DeviceCapability Name="bluetooth" /> <DeviceCapability Name="radios" /> </Capabilities> ``` 若使用 Qt 部署工具,需在 `.pro` 文件中添加: ```qmake winrt: MANIFEST.capabilities += bluetooth radios ``` #### 步骤 2:修正 UUID 格式 强制转换所有 UUID 为 128 位格式: ```cpp // 转换 16 位 UUID 到 128 位标准格式 QBluetoothUuid toFullUuid(quint16 shortUuid) { return QBluetoothUuid(QString("0000%1-0000-1000-8000-00805f9b34fb").arg(shortUuid, 4, 16, QLatin1Char('0'))); } // 使用示例 QLowEnergyService *service = controller->createServiceObject( toFullUuid(0x180D) // 心率服务 ); ``` #### 步骤 3:处理异步操作 添加事件循环等待服务发现完成: ```cpp // 连接设备后等待服务发现 QEventLoop loop; connect(controller, &QLowEnergyController::serviceDiscovered, [&](const QBluetoothUuid &){ loop.quit(); }); controller->discoverServices(); loop.exec(); // 阻塞直到发现服务 // 服务详情发现 connect(service, &QLowEnergyService::stateChanged, [&](QLowEnergyService::ServiceState s){ if(s == QLowEnergyService::ServiceDiscovered) loop.quit(); }); service->discoverDetails(); loop.exec(); ``` #### 步骤 4:描述符写入处理 绕过 WinRT 保护机制的直接写入方法: ```cpp void writeDescriptorSafe(QLowEnergyService *service, const QLowEnergyDescriptor &descriptor, const QByteArray &value) { #if defined(Q_OS_WINRT) // WinRT 特殊处理 auto nativeDesc = descriptor.nativeDescriptor().value<winrt::guid>(); auto writer = ::Windows::Storage::Streams::DataWriter(); writer.WriteBytes(winrt::array_view<const uint8_t>( reinterpret_cast<const uint8_t*>(value.constData()), reinterpret_cast<const uint8_t*>(value.constData() + value.size()) )); service->writeDescriptor(descriptor, writer.DetachBuffer()); #else service->writeDescriptor(descriptor, value); #endif } ``` --- ### 三、调试建议 1. **启用 Qt BLE 调试日志** 在 `main.cpp` 中添加: ```cpp qputenv("QT_LOGGING_RULES", "qt.bluetooth*=true"); ``` 2. **检查 WinRT 事件日志** 使用 Windows 事件查看器查看 `Microsoft-Windows-Bluetooth-BLEWinRT` 日志。 3. **验证设备兼容性** 使用 Microsoft 的 **BluetoothLEExplorer** 工具确认设备是否支持原生 WinRT API。 --- ### 四、替代方案 若仍无法解决,考虑混合编程方案: ```cpp #include <winrt/Windows.Devices.Bluetooth.GenericAttributeProfile.h> using namespace winrt::Windows::Devices::Bluetooth::GenericAttributeProfile; // 通过 WinRT 原生 API 访问服务 GattDeviceService service = GattDeviceService::FromIdAsync(deviceId).get(); GattCharacteristicsResult result = service.GetCharacteristicsAsync().get(); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值