PC蓝牙通信C#代码实现
作者:名字好难 发布时间:2023-07-06 19:59:32
本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下
添加引用InTheHand.Net.Personal.dll
首先创建一个蓝牙类
class LanYa {
public string blueName { get; set; } //l蓝牙名字
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; }
}
然后就是搜索设备
List<LanYa> lanYaList = new List<LanYa>(); //搜索到的蓝牙的集合
BluetoothClient client = new BluetoothClient();
BluetoothRadio radio = BluetoothRadio.PrimaryRadio; //获取蓝牙适配器
radio.Mode = RadioMode.Connectable;
BluetoothDeviceInfo[] devices = client.DiscoverDevices();//搜索蓝牙 10秒钟
foreach (var item in devices) {
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 });//把搜索到的蓝牙添加到集合中
}
蓝牙的配对
BluetoothClient blueclient = new BluetoothClient();
Guid mGUID1 = BluetoothService.Handsfree; //蓝牙服务的uuid
blueclient.Connect(s.blueAddress, mGUID) //开始配对 蓝牙4.0不需要setpin
客户端
BluetoothClient bl = new BluetoothClient();//
Guid mGUID2 = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");//蓝牙串口服务的uuiid
try
{
bl.Connect(s.blue_address, mGUID);
//"连接成功";
}
catch(Exception x)
{
//异常
}
var v = bl.GetStream();
byte[] sendData = Encoding.Default.GetBytes(“人生苦短,我用python”);
v.Write(sendData, 0, sendData.Length); //发送
服务器端
bluetoothListener = new BluetoothListener(mGUID2);
bluetoothListener.Start();//开始监听
bl = bluetoothListener.AcceptBluetoothClient();//接收
while (true)
{
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字节
}
基本上就是这些吧!
猜你喜欢
- 本文实例讲述了java和c#使用hessian通信的方法,是非常实用的技巧。分享给大家供大家参考。具体分析如下:首先,hessian主页为:
- 在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)JDK安装完成之后我
- 反射和配置文件学习 Spring 的时候,虽然可以知道是通过反射和配置文件的方式来获取 JavaBean 对象,但是一直没有机会自己尝试一次
- 本文实例讲述了C#中数组初始化与数组元素复制的方法。分享给大家供大家参考。具体如下:下面的代码演示如何创建和初始化数组,以及C#中如何将数组
- 本文实例讲述了JAVA获取任意http网页源代码。分享给大家供大家参考,具体如下:JAVA获取任意http网页源代码可实现如下功能:1. 获
- 又是兴趣系列网上有很多自动强红包的例子和代码,笔者也是做了一些优化。先说说自己的两个个优势1.可以在聊天界面自动强不依赖于通知栏推送 2.可
- C#类如下:using System;using System.Collections.Generic;using System.Text;
- Java中的动态和静态编译实例详解首先,我们来说说动态和静态编译的问题。 Q: java和javascript有什么
- MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL
- SpringBoot实践,开发社区登录模块今日份开启 发送邮件三个步骤:1、邮箱设置首先需要注册一个新浪邮箱 18215626061@sin
- 第一次是接触Lambda表达式是在TypeScript中(JavaScript的超集中),当时是为了让TypeScript的this方法外而
- 在 Java 中将 Object 转换为 Int我们可以使用 Object 类来引用我们在 Java 中不知道其类型的任
- jstat命令简介jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的
- 在之前项目中有用到关于获取手机联系人的部分,闲置就想和大家分享一下,话不多说,上代码:java部分:package com.example.
- 前言现在很多的 App 都有自动轮播的 banner 界面,用于展示广告图片或者显示当前比较热门的一些活动,除了具备比较酷炫的效果之外,通过
- 题目题目要求思路:模拟用一个哈希表记录可出现的字母,然后逐一遍历每个单词每个字母,符合条件则结果加一。Javaclass Solution
- 泛型将集合中的元素限定为一个特定的类型。术语ArrayList<E> -- 泛型类型ArrayList -- 原始类型E --
- 引入依赖 <dependency> <g
- 本文介绍SpringBoot如何使用Prometheus配合Grafana监控。1.关于PrometheusPrometheus是一个根据应
- 一、本地仓库初始化与远程仓库推送操作Idea 基本环境配置Github 配置Git 执行文件目录指定创建工程git02创建本地仓库并提交项目