Содержание материала

Как видите, все просто.

И так, удалять устройства мы умеем. Давайте теперь научимся добавлять их. Для этого Bluetooth API предоставляет две функции:

BluetoothAuthenticateDevice - отправляет запрос на авторизацию удаленному устройству Bluetooth. Есть два режима авторизации: "Wizrd mode" и "Blind Mode".

"Wizard Mode" запускается, когда параметр pszPasskey = nil. В этом случае открывается окно "Мастера подключения". У пользователя будет запрошен пароль, который будет отправлен в запросе на авторизацию удаленному устройству. Пользователь будет оповещен системой об успешном или не успешном выполнении авторизации и получит возможность попытаться авторизировать устройства еще раз.

"Blind Mode" вызывается, когда pszPasskey <> nil. В этом случае пользователь не увидит никакого мастера. Вам необходимо программно запросить код авторизации (pszPasskey) и уведомить пользователя о результате.

Объявление функции:

Code:

function BluetoothAuthenticateDevice(

hwndParent : HWND;

hRadio : THandle;

pbtdi : BLUETOOTH_DEVICE_INFO;

pszPasskey : PWideChar;

ulPasskeyLength : ULONG): DWORD; stdcall;

 

Параметры:

hwndParent

Handle родительского окна. Если 0, то родительским окном станет окно Desktop.

hRadio

Handle локального радиомодуля. Если 0, то авторизация будет проведена на всех радиомодулях. Если хотя бы один пройдет авторизацию, функция выполнится успешно.

pbdti

Информация об устройстве, на котором необходимо авторизироваться.

pszPasskey

PIN для авторизации. Если nil, то вызывается мастер авторизации (описано выше). Важно: pszPasskey не NULL-терминированная строка!

ulPasskeyLength

Длина строки в байтах. Должна быть меньше либо равна BLUETOOTH_MAX_PASSKEY_SIZE * SizeOf(WCHAR).

Возвращаемые значения:

ERROR_SUCCESS

Функция выполнена успешно

ERROR_CANCELLED

Пользователь отменил процесс авторизации

ERROR_INVALID_PARAMETER

Структура pbtdi не верна

ERROR_NO_MORE_ITEMS

Устройство в pbtdi уже авторизированно

Другие ошибки Win32

 

Для "Blind Mode" соответствие кодов ошибок Bluetooth кодам ошибок Win32 приведено в таблице:

Bluetooth

Win32

BTH_ERROR_SUCCESS

ERROR_SUCCESS

BTH_ERROR_NO_CONNECTION

ERROR_DEVICE_NOT_CONNECTED

BTH_ERROR_PAGE_TIMEOUT

WAIT_TIMEOUT

BTH_ERROR_HARDWARE_FAILURE

ERROR_GEN_FAILURE

BTH_ERROR_AUTHENTICATION_FAILURE

ERROR_NOT_AUTHENTICATED

BTH_ERROR_MEMORY_FULL

ERROR_NOT_ENOUGH_MEMORY

BTH_ERROR_CONNECTION_TIMEOUT

WAIT_TIMEOUT

BTH_ERROR_LMP_RESPONSE_TIMEOUT

WAIT_TIMEOUT

BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS

ERROR_REQ_NOT_ACCEP

BTH_ERROR_PAIRING_NOT_ALLOWED

ERROR_ACCESS_DENIED

BTH_ERROR_UNSPECIFIED_ERROR

ERROR_NOT_READY

BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION

ERROR_VC_DISCONNECTED

Аналогичная функция:

BluetoothAuthenticateMultipleDevices - позволяет авторизироваться сразу на нескольких устройствах при помощи одной копии "Мастера авторизации".

Объявление функции:

Code:

function BluetoothAuthenticateMultipleDevices(

hwndParent : HWND;

hRadio : THandle;

cDevices : DWORD;

rgpbtdi : __PBLUETOOTH_DEVICE_INFO): DWORD; stdcall;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить