Windows提供兩種API用于連接藍牙設備: BluetoothAuthenticateDevice, BluetoothAuthenticateDeviceEx
采用第一種方案,需要用戶點擊系統彈出資訊,且已驗證有些系統設定后不會彈出可點擊的資訊。
第二種方案,可以實作全程自動配對。需要通過BluetoothRegisterForAuthenticationEx注冊一個callback供配對時使用,callback函式如下:
BOOL CALLBACK BluetoothAuthCallback(
LPVOID pvParam,
PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS pAuthCallbackParams)
{
BLUETOOTH_AUTHENTICATE_RESPONSE AuthRes;
::ZeroMemory(&AuthRes, sizeof(BLUETOOTH_AUTHENTICATE_RESPONSE));
AuthRes.authMethod = pAuthCallbackParams->authenticationMethod;
AuthRes.bthAddressRemote = pAuthCallbackParams->deviceInfo.Address;
AuthRes.negativeResponse = 0;
if (AuthRes.authMethod == BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON)
{
AuthRes.numericCompInfo.NumericValue = 0;
}
// Send authentication response to authenticate device
DWORD dwRet = BluetoothSendAuthenticationResponseEx(*(HANDLE*)pvParam, &AuthRes);
if (dwRet == ERROR_SUCCESS)
{
}
return TRUE;
}
認證方法一直是BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON, NumericValue嘗試過很多(0, 1, pAuthCallbackParams->NumericValue, ...),但回傳值dwRet都是1244(ERROR_NOT_AUTHENTICATED)
有人知道這個NumericValue從哪里可以找到?怎么設么?(找不到設備的供應商,但有一個軟體是可以自動配對的)
uj5u.com熱心網友回復:
請大牛們幫看下。
uj5u.com熱心網友回復:
回呼傳入的引數都點開看看 是否有些什么資訊, 沒有的話 可能得看提供服務的設備端是怎么設定的uj5u.com熱心網友回復:
頂,有人知道么?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/35227.html
標籤:網絡編程
上一篇:opengl匯入obj檔案問題
