如何使用 C# .NET 在 Windows 中“取消配对”、“删除”蓝牙设备

我遇到了一个问题。我需要取消配对或从 Windows 中移除蓝牙设备。在这里,我的手机 Redmi 已配对

http://img.mukewang.com/62a550c1000143f119141037.jpg

而且我需要取消配对,所以基本上我想达到与按下“删除设备”按钮相同的效果

我试过这个,但它对我不起作用,因为这个解决方案断开了蓝牙设备,但它仍然保持配对:How to disconnect a bluetooth device from C# .Net in Win7

我正在使用 C# WPF 和 InTheHand 库进行配对,但它没有取消配对功能

我如何实现我的目标?感谢


莫回无
浏览 322回答 1
1回答

慕村9548890

要取消经典蓝牙设备,您必须调用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);}请注意,此功能仅允许取消配对经典蓝牙设备。要取消配对蓝牙 LE 设备,您必须使用基于 WinRT 的其他方式。
打开App,查看更多内容
随时随地看视频慕课网APP