注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

xian827991006

专注于DotNet编程,QlikView开发,网站seo,各种软件工具,互联网

 
 
 

日志

 
 
关于我

爱看书、爱探索的人. 目前关注与QlikView开发,推荐一个QlikView资源站。www.qlikviewcn.com

网易考拉推荐

用C#调用蓝牙编程  

2013-04-22 09:41:06|  分类: C#和VS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

什么是蓝牙?

现在只能手机这么发达,蓝牙对我们来说肯定不陌生。我来介绍一下官方概念:

蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。

我的介绍:通过蓝牙我们可以在10m范围内让两个有蓝牙的设备进行数据交换。

C#进行蓝牙编程

本节我们给大家用源码的形式给大家介绍如何用C#调用蓝牙。下面的源码是基于destop的C#调用蓝牙的程序,也就是使用普通版本的.NET Framework来调用编程,一般是有蓝牙的笔记本电脑,或者使用外接蓝牙设备的电脑,如何使用外接蓝牙设备,请参考:外接USB蓝牙设置无法启动

好了下面直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;
 
namespace BlueTooth
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        BluetoothClient Blueclient = new BluetoothClient();
        Dictionary<string, BluetoothAddress> deviceAddresses = new Dictionary<string, BluetoothAddress>();
 
        private void btnFind_Click(object sender, EventArgs e)
        {
            this.lblMessage.Text = "";
            this.lblMessage.Visible = true;
            BluetoothRadio BuleRadio = BluetoothRadio.PrimaryRadio;
            BuleRadio.Mode = RadioMode.Connectable;
            BluetoothDeviceInfo[] Devices = Blueclient.DiscoverDevices();
            lsbDevices.Items.Clear();
            deviceAddresses.Clear();
            foreach (BluetoothDeviceInfo device in Devices)
            {
                lsbDevices.Items.Add(device.DeviceName);
                deviceAddresses[device.DeviceName] = device.DeviceAddress;
            }
 
            this.lblMessage.Text = "搜索设备完成,搜索到" + lsbDevices.Items.Count + "个蓝牙设备。";
 
        }
 
        private void btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                BluetoothAddress DeviceAddress = deviceAddresses[lsbDevices.SelectedItem.ToString()];
                Blueclient.SetPin(DeviceAddress, txtPwd.Text.Trim());
                Blueclient.Connect(DeviceAddress, BluetoothService.Handsfree);
                MessageBox.Show("配对成功。");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

运行结果:

蓝牙运行结果

 

上图是点击finddevices按钮后的结果。我们选择其中的一个设备,然后在Password的textbox中输入配对密码,点击Connect,如果成功会弹出对话框提示“配对成功”,如果失败会出现如下提示:

蓝牙连接失败

 

Note:你只要想在Visual Studio中建立一个winform的默认程序,并把代码复制过去,然后引用InTheHand.Net.Personal.dll你的程序就可以直接运行了。不过我不建议你直接复制,最好是敲一边代码比较好。

上面的示例代码中还需要特殊注意的就是下面这三个命名空间:

using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;

他们是拿来的呢?在上面的程序中我引用了一个外部的DLL:InTheHand.Net.Personal.dll,上面那三个命名空间就是InTheHand.Net.Personal.dll中的。我使用的是桌面版的.NET Framework3.5,如果你想在移动设备,如手机或者手持机等移动设备而上使用,那么你只需要创建一个.NET Compact  Framework 3.5的程序,把上面的源码直接复制过去,并且引用InTheHand.Net.Personal.dll的移动版本就ok了。

总结

本文介绍了蓝牙技术以及用C#写了一个调用蓝牙的实例Demo,帮助大家理解,希望对大家有所帮助。我在这里留下一个悬念就是InTheHand.Net.Personal.dll是怎么来的,请参考:.NET蓝牙开源库:32feet.NET

除非注明,木杉博客文章均为原创并采用BY-NC-SA协议进行授权原创文章,转载请注明: 转载自木杉博客

本文链接地址: 用C#调用蓝牙编程

  评论这张
 
阅读(7849)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017