Как "отключить", "удалить" устройство Bluetooth в Windows с C# .NET
Я столкнулся с проблемой. Мне нужно отключить или удалить устройство Bluetooth из Windows. Здесь у меня есть телефон Редми в паре
И мне нужно отключить его, поэтому в основном я хочу добиться того же эффекта, что и нажатие кнопки "Удалить устройство"
Я попробовал это, но у меня это не сработало, так как это решение отключает устройство Bluetooth, но оно все еще остается сопряженным: Как отключить устройство Bluetooth от C# .Net в Win7
Я использую C# WPF и библиотеку InTheHand для сопряжения, но у нее нет несправедливой функциональности
Как мне достичь своей цели? Поблагодарить
1 ответ
Чтобы отключить классическое устройство Bluetooth, вам необходимо вызвать функцию BluetoothRemoveDevice.
Для.NET это может быть импортировано как ниже
[StructLayout(LayoutKind.Explicit)]
struct BLUETOOTH_ADDRESS
{
[FieldOffset(0)]
[MarshalAs(UnmanagedType.I8)]
public Int64 ullLong;
[FieldOffset(0)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_0;
[FieldOffset(1)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_1;
[FieldOffset(2)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_2;
[FieldOffset(3)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_3;
[FieldOffset(4)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_4;
[FieldOffset(5)]
[MarshalAs(UnmanagedType.U1)]
public Byte rgBytes_5;
};
[DllImport("BluetoothAPIs.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.U4)]
static extern UInt32 BluetoothRemoveDevice(
[param: In, Out] ref BLUETOOTH_ADDRESS pAddress);
Вот как это назвать:
UInt32 Unpair(Int64 Address)
{
BLUETOOTH_ADDRESS Addr = new BLUETOOTH_ADDRESS();
Addr.ullLong = Address;
return BluetoothRemoveDevice(ref Addr);
}
Обратите внимание, что эта функция позволяет отключать только классические устройства Bluetooth. Чтобы отключить устройства Bluetooth LE, вы должны использовать другой способ, основанный на WinRT.