C# 蓝牙无法访问Windows.Devices.Bluetooth

C# 项目无法访问Windows.Devices.Bluetooth?

1.添加了windows.winmd的引用

img

2.using 语句没报错,但不能访问BluetoothLEDevice、GattCharacteristic等类

img

3.目标框架.Net Framework 4.6

img

用C#在windows上操控电脑自带蓝牙(入道指南)

可以借鉴下
https://blog.csdn.net/yssjz960427031/article/details/50990372/

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

可能是因为您的项目没有添加对Universal Windows Platform的支持,而Windows.Devices.Bluetooth是UWP的一部分。请按照以下步骤操作:

1.右键项目,选择“属性”:

2.在“应用程序”选项卡中,将“目标版本”和“最低版本”都设置为Windows 10(通过适用于Windows 10的SDK):

3.在“生成”选项卡中,将“平台目标”设置为“Any CPU”,并在“高级”选项卡中勾选“允许生成输出代码”:

4.最后,在代码中添加以下using语句:

using Windows.Devices.Bluetooth;
using Windows.Devices.Bluetooth.GenericAttributeProfile;

现在您应该可以访问BluetoothLEDevice、GattCharacteristic等类了。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
可能的原因:

  1. 你的项目使用的是 .NET Framework 4.6 ,这个框架并不支持 Bluetooth,而 C# Windows 项目 needs to use Windows Runtime APIs 才能访问 Windows.Devices.Bluetooth 接口。

  2. 你的应用程序没有设置合适的权限,如果你的实施是在桌面上运行的,你需要检查你的应用权限,如果你的应用程序是在UWP 中运行的,则需要手动启用 Bluetooth 权限。

下面是一个简单的 C# 代码片段,可以检查蓝牙适配器是否存在:

using System;
using Windows.Devices.Bluetooth;
 
namespace App1
{
    class Program
    {
        static void Main(string[] args)
        {
            var watcher = BluetoothAdapter.GetDeviceSelector();
        }
    }
}

如果没有问题的话,运行以上程序将会显示 "No Error".

如果还有问题,请检查你的应用的目标平台,以及你是否有适当的权限。
如果我的回答解决了您的问题,请采纳!

以下答案由GPT-4.5Plus大模型(语音)与博主A努力中.......共同编写:
这种情况的常见原因有:

  1. 缺少所需的设备权限。使用 Bluetooth API 需要亲密设备权限,如果没有授权会出现此错误。
    解决方法:打开应用的“选项”-“隐私”-“设备”,找到该应用并设为“允许使用蓝牙”。
  2. UWP应用需要在应用包清单中声明设备功能。如果没有声明会出现无权访问错误。
    解决方法:在UWP app项目的package.appxmanifest文件中,“功能”一节中勾选“蓝牙”功能。
  3. 部署目标不支持蓝牙。如果目标设备上不支持蓝牙或蓝牙已关闭,也会触发此错误。
    解决方法:确保部署在支持蓝牙且蓝牙已开启的设备上。
  4. 蓝牙控制器驱动问题。如果蓝牙控制器驱动安装或配置不正确也会导致API无法正常访问蓝牙设备。
    解决方法:检查“设备管理器”中蓝牙控制器是否有警告图标,必要时更新或重装驱动程序。
  5. 某些IDE如Visual Studio的模拟器不支持蓝牙。如果在不支持蓝牙的模拟器上运行也会出现此错误。
    解决方法:部署到真实设备进行测试。

以上是使用Windows.Devices.Bluetooth API时常见的“无权访问”错误原因及解决方法。首先确保应用有使用蓝牙的权限,并在UWP app的清单中声明蓝牙功能。然后检查蓝牙控制器驱动和硬件本身是否支持蓝牙。排除环境问题后,如果问题仍未解决,可以提供更详细的错误堆栈信息以便定位具体问题。

你这个是winforms程序?你说的这个库可能是uniapp才能用的。