异常如下

【尝试一】

百度搜索cc7b13ffcd2ddd51找到类似情况

https://learningintheopen.org/tag/publickeytokencc7b13ffcd2ddd51/

重新下载安装最新的.Net Framework

问题并没有解决

仔细一看我和上面这个博客的问题不一样!!!

我复制了异常的详细信息如下:

异常提示我找不到System.Configuration.configurationManager这个程序集,但是我的SDK里面明明有这个包。

【尝试二】

但是.NETCore的版本只有2.1比官网最新的2.2要旧,所以我想重装.NET core试试

结果还是不行

【尝试三】

打开手动找到system.configuration的dll文件并加入引用

结果还是不行!!!

最后!!!!!!

我看到了这段话

原来我最初创建的项目类型就出了问题。

应该创建这个.NET Framework控制台应用

成功跑通蓝牙的第一个程序

获取蓝牙适配器并输出本地计算机蓝牙相关信息。

源代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Configuration;
using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;
using System.IO;

namespace ConsoleApp2
{
class LanYa
{
public string blueName { get; set; } //蓝牙名字
public BluetoothAddress blueAddress { get; set; } //蓝牙的唯一标识符
public ClassOfDevice blueClassOfDevice { get; set; } //蓝牙是何种类型
public bool IsBlueAuth { get; set; } //指定设备通过验证
public bool IsBlueRemembered { get; set; } //记住设备
public DateTime blueLastSeen { get; set; }
public DateTime blueLastUsed { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
BluetoothRadio radio = BluetoothRadio.PrimaryRadio;//获取蓝牙适配器
if (radio == null)
{
Console.WriteLine("没有找到本机蓝牙设备!");
}
else
{
Console.WriteLine("ClassOfDevice: " + radio.ClassOfDevice);
Console.WriteLine("HardwareStatus: " + radio.HardwareStatus);
Console.WriteLine("HciRevision: " + radio.HciRevision);
Console.WriteLine("HciVersion: " + radio.HciVersion);
Console.WriteLine("LmpSubversion: " + radio.LmpSubversion);
Console.WriteLine("LmpVersion: " + radio.LmpVersion);
Console.WriteLine("LocalAddress: " + radio.LocalAddress);
Console.WriteLine("Manufacturer: " + radio.Manufacturer);
Console.WriteLine("Mode: " + radio.Mode);
Console.WriteLine("Name: " + radio.Name);
Console.WriteLine("Remote:" + radio.Remote);
Console.WriteLine("SoftwareManufacturer: " + radio.SoftwareManufacturer);
Console.WriteLine("StackFactory: " + radio.StackFactory);
}
//Console.ReadKey();

List<LanYa> lanYaList = new List<LanYa>(); //搜索到的蓝牙的集合
BluetoothClient client = new BluetoothClient();
radio.Mode = RadioMode.Connectable;
BluetoothDeviceInfo[] devices = client.DiscoverDevices();//搜索蓝牙 10秒钟
int count = 0;
foreach (var item in devices)
{
count++;
Console.WriteLine("===========蓝牙设备"+count+"================");
Console.WriteLine("device name:" + item.DeviceName);//输出每个蓝牙设备的名字
Console.WriteLine("device address:" + item.DeviceAddress);//输出每个蓝牙设备的名字
Console.WriteLine("ClassOfDevice:" + item.ClassOfDevice);
Console.WriteLine("Authenticated:" + item.Authenticated);
Console.WriteLine("Remembered:" + item.Remembered);
Console.WriteLine("LastSeen:" + item.LastSeen);
Console.WriteLine("LastUsed:" + item.LastUsed);
lanYaList.Add(new LanYa { blueName = item.DeviceName, blueAddress = item.DeviceAddress, blueClassOfDevice = item.ClassOfDevice, IsBlueAuth = item.Authenticated, IsBlueRemembered = item.Remembered, blueLastSeen = item.LastSeen, blueLastUsed = item.LastUsed });//把搜索到的蓝牙添加到集合中
}
Console.WriteLine("device count:" + devices.Length);//输出搜索到的蓝牙设备个数

蓝牙的配对
//BluetoothClient blueclient = new BluetoothClient();
//Guid mGUID1 = BluetoothService.Handsfree; //蓝牙服务的uuid

//blueclient.Connect(s.blueAddress, mGUID) //开始配对 蓝牙4.0不需要setpin

BluetoothDeviceInfo dev = devices[0];

//客户端
BluetoothClient bl = new BluetoothClient();//
Guid mGUID = Guid.Parse("0000fff4-0000-1000-8000-00805F9B34FB");//蓝牙串口服务的uuiid

//byte[] def = { 0x13, 0x00, 0x05, 0x15, 0x11, 0x08, 0x01, 0x10, 0x02, 0x01, 0x12, 0x14 };

//string s = "D05FB81A21CE";
//byte[] def = Encoding.Default.GetBytes(s);
//string str2 = BitConverter.ToString(def);
//Console.WriteLine(str2);

//BluetoothAddress abc = new BluetoothAddress(def);

try+
{
//bl.Connect(abc, mGUID);
bl.Connect(dev.DeviceAddress, mGUID);
Console.WriteLine("连接成功");
//"连接成功";
}
catch (Exception x)
{
Console.WriteLine("连接异常");
//异常
}

//var v = bl.GetStream();
//byte[] sendData = Encoding.Default.GetBytes(“人生苦短,我用python”);
//v.Write(sendData, 0, sendData.Length); //发送

//服务器端
BluetoothListener bluetoothListener = new BluetoothListener(mGUID);
bluetoothListener.Start();//开始监听

bl = bluetoothListener.AcceptBluetoothClient();//接收

while (true)
{
Console.WriteLine("111111111");
byte[] buffer = new byte[100];
Stream peerStream = bl.GetStream();

peerStream.Read(buffer, 0, buffer.Length);

string data = Encoding.UTF8.GetString(buffer).ToString().Replace("\0", "");//去掉后面的\0字节
}
Console.ReadKey();

}
}
}

转载于:https://www.cnblogs.com/nan424164292/p/10683160.html

首次c#蓝牙开发踩坑记录相关推荐

  1. 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录

    需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分离模式(vue工程仅作为客户端),用户通过域名访问的是客户端,但是微信授权中 ...

  2. 乐视体感摄像头开发踩坑记录

    乐视三合一体感相机开发踩坑记录 第一次用Cmake,以下如有错误请大佬指正 开发环境: Linux ARM(树莓派4) AstraSDK-v2.1.3 Arm/Arm64(https://orbbec ...

  3. 2020年开发踩坑记录

    20200207 mybatis plus 自带insert插入异常 sql injection violation 解决方法: 使用逆向工程脚本时,生成的映射实体类在下面的注解会多table: 删除 ...

  4. Flutter 开发踩坑记录(干货总结)

    Flutter 太好学了!BUG 真的太少了!issues 只有 5000 多!也就那么亿点!简单得我都枯了!毕竟每次遇到问题,???????? 都是直接去找群里的法佬.低调.Alex 等几位大佬(? ...

  5. uniapp 开发踩坑记录

    使用dcloud 的 uniapp开发了一个app,把遇到的问题总结一下: 1.uniapp 前端的布局代码与小程序 高度相似(如果没有接触过 建议多看看文档):js是用的vue 布局比较简单,比jq ...

  6. Vue SPA应用微信开发踩坑记录

    解决难点 JS-SDK需要向服务端获取签名,且获取签名中需要的参数包括所在页面的网址,但由于单页应用的路由特殊,其中涉及到的iOS和Android的微信客户端浏览器内核的差异性导致的兼容问题 JS-S ...

  7. uniapp聊天页nvue开发踩坑记录

    由于前段时间开发出来的vue版本的聊天页,性能.用户体验等方面十分不尽人意,故开启了新的征途,nvue版本聊天页的开发. 痛点一.进入页面保持在最底部 这次重构nvue版本的聊天页,使用了标新立异的渲 ...

  8. Flutter 开发踩坑记录

    Flutter 太好学了!BUG 真的太少了! issues 只有 5000 多!也就那么亿点!简单得我都枯了!毕竟每次遇到问题,

  9. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

最新文章

  1. apache 和tomcat的区别
  2. 在Eclipse中查看Javadoc文档
  3. 手把手教你使用TF服务将TensorFlow模型部署到生产环境
  4. openjpa_OpenJPA:内存泄漏案例研究
  5. LeetCode 第 34 场双周赛(385/2842,前13.5%)
  6. python中input函数的返回是哪种类型_Python3.x中input的变化:input函数默认返回字符串类型...
  7. c++语言怎么从internet上某个时间服务器获取时间信息,在VC++中实现同步Internet时间...
  8. ReactHooks+Antd Checkbox Group多选框组单独禁用其中选项
  9. acl审计软件_现在有多少种比较常用的审计软件 ?
  10. python:base64与图片的互转
  11. Apache Spark源码剖析
  12. 推荐阅读《未来世界的幸存者》
  13. 证件照缩小为20k大小
  14. Java核心技术大会|Java应用开发专场
  15. python executescript_Python(SQLite)executescript用法(
  16. openwrt路由表设置_OpenWrt路由器常用设置
  17. CSS入门二、美化页面元素
  18. ​STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列
  19. W806 基于Arduino开发的GPIO操作示例,勇于尝新
  20. 佩戴安全帽数据集使用说明和下载

热门文章

  1. c语言字符合法,C语言字符数据的合法形式
  2. mysql监听串口_tcp与串口透传(select)
  3. 华为智慧屏云会议怎么操作_像玩手机一样玩转车机,华为智选车载智慧屏是怎么做到的?...
  4. html5支付认证,html5实现微信支付宝接口
  5. 光储充一体化充电站_忙时给车充电 闲时上网供电 多能电动车充电站在乐清投用...
  6. php 编辑器格式输出_高效PHP开发人员的十大PHP开发工具
  7. 环回测试能够提供什么信息_以太网测试仪的主要功能有哪些?
  8. jqueryui时间插件_jQueryUI工具提示插件
  9. python hash函数_Python hash()函数
  10. 开课吧:数据分析能够给企业带来什么价值?