我在Windows 8.1中编写桌面应用程序,我需要使用BluetoothGATTGetServicesfunction从配对设备获取服务。 为了做到这一点,我需要处理设备,我已经做了,并使用CreateFile函数来处理。 但是,当我尝试获取服务函数返回错误:HRESULT_FROM_WIN32(ERROR_NOT_SUPORTED)。 有谁知道如何解决或告诉我做错了什么。 我正在尝试获取服务的设备是iPhone 5s。
这是代码示例:
HRESULT WinBluetoothDeviceProvider::GetBleHandle(OUT HANDLE* hBluetooth,WinBluetoothDevice* blDev) { GUID bthGuid; CLSIDFromString(TEXT(BLE_INTERFACE_GUID),&bthGuid); // BLE_INTERFACE_GUID this is GUID of my Device Interface GUID //#define BLE_INTERFACE_GUID "{00f40965-e89d-4487-9890-87c3abb211f4}" HRESULT result = S_OK; HDEVINFO hDevInfo; SP_DEVINFO_DATA devInfoData; HANDLE hBle; hDevInfo = SetupDiGetClassDevs(&bthGuid,NULL,DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); if (hDevInfo == INVALID_HANDLE_VALUE) return E_FAIL; devInfoData.cbSize = sizeof(SP_DEVINFO_DATA); SP_DEVICE_INTERFACE_DATA devInterfData = { 0 }; devInterfData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); DWORD DataT; LPTSTR buffer = NULL; DWORD buffersize = 0; devInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for (DWORD i = 0; SetupDiEnumDeviceInterfaces(hDevInfo,&bthGuid,i,&devInterfData); i++) { DWORD d = GetLastError(); DWORD size = 0; if (!SetupDiGetDeviceInterfaceDetail(hDevInfo,&devInterfData,&size,0)) { if (GetLastError() == ERROR_NO_MORE_ITEMS) { result = S_OK; break; } PSP_DEVICE_INTERFACE_DETAIL_DATA pInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LPTR,size); pInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); if (!SetupDiGetDeviceInterfaceDetail(hDevInfo,pInterfaceDetailData,size,&devInfoData)) { result = E_FAIL; break; } hBle = CreateFile(pInterfaceDetailData->DevicePath,GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,OPEN_EXISTING,FILE_ATTRIBUTE_norMAL,NULL); USHORT serviceBuffActual; PBTH_LE_GATT_SERVICE servicesBuff = new _BTH_LE_GATT_SERVICE; HRESULT result = S_OK; result = BluetoothGATTGetServices(hBle,&serviceBuffActual,BLUetoOTH_GATT_FLAG_NONE); // this function always retunr ERROR_NOT_SUPPORTED LocalFree(pInterfaceDetailData); } } SetupDiDestroyDeviceInfoList(hDevInfo); return result; }
如何使用蓝牙在macOS和Windows之间build立ssh连接?
获取范围内的蓝牙设备
Bluez自动重新连接设备
电话为Linux PC的蓝牙GPS
创build虚拟蓝牙设备/服务,让执行计算机发现/使用它们
Linux BlueZ 4.101允许GATT连接,但不会在Ubuntu上公开GATT服务
可以使用avahi守护进程在BNEP(BT-PAN)networking接口中发布和发现服务
如何控制Windows 10上的蓝牙LE连接?
我在哪里可以find一些BlueZ的文档?
通过蓝牙进行Android和Windows通信
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。