ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:490.93KB ,
资源ID:6409786      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6409786.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8Windows Mobile 与 PC之间的通过蓝牙Bluetooth 传输文件的开发.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8Windows Mobile 与 PC之间的通过蓝牙Bluetooth 传输文件的开发.docx

1、8Windows Mobile 与 PC之间的通过蓝牙Bluetooth 传输文件的开发背景之前也写过一些Windows Mobile和Wince下Bluetooth开发的文章如下。.NET Compact Framework下的Bluetooth开发 之 Windows Embedded Source Tools for Bluetooth.NET Compact Framework下的Bluetooth开发 之 32feet.NET.NET Compact Framework下的Bluetooth开发 之 Bluetooth Virtual Serial Port (可以用于把Blueto

2、oth的GPS receiver变成串口).NET Compact Framework下的Bluetooth设备的配对30 Days of .NET Windows Mobile Applications - Day 02: Bluetooth Manager(蓝牙管理器) (简单的Bluetooth应用).NET Compact Framework下的Bluetooth广播程序的开发期间有两个同学问我如何实现蓝牙的文件传输,今天整理出蓝牙文件传输的代码实现,并把他记录下来。简介本文讲述Windows Mobile和PC之间蓝牙文件传输的实现。通过使用库对Obex的封装实现了Push文件的程序

3、。Obex Push 的PC程序可以给所有支持Obex的设备传输文件,包括非Windows Mobile的设备。OBEX蓝牙文件传输可以借助OBEX实现。OBEX(The Object Exchange Protocol,对象交换协议)被广泛用于个人无线网络中设备的文件传输,基本上所有的移动设备都支持该协议。实现了OBEX,不仅仅可以实现Window Mobile和PC的文件传输,可以实现所有支持OBEX协议的设备的文件传输。关于OBEX可以参考 Object Exchange Protocol.Windows Mobile 推文件到PC本节讲述Windows Mobile推文件到PC的实现,

4、其实PC推文件到Windows Mobile的实现差异性不大。Windows Mobile客户端的实现见源代码ObexPushDevice项目。private void menuItem1_Click(object sender, EventArgs e) / use the new select bluetooth device dialog SelectBluetoothDeviceDialog sbdd = new SelectBluetoothDeviceDialog(); sbdd.ShowAuthenticated = true; sbdd.ShowRemembered = tru

5、e; sbdd.ShowUnknown = true; if (sbdd.ShowDialog() = DialogResult.OK) OpenFileDialog ofdFileToBeam = new OpenFileDialog(); if (ofdFileToBeam.ShowDialog() = DialogResult.OK) Cursor.Current = Cursors.WaitCursor; System.Uri uri = new Uri(obex:/ + sbdd.SelectedDevice.DeviceAddress.ToString() + / + System

6、.IO.Path.GetFileName(ofdFileToBeam.FileName); ObexWebResponse response = null; try ObexWebRequest request = new ObexWebRequest(uri); request.ReadFile(ofdFileToBeam.FileName); response = request.GetResponse() as ObexWebResponse; MessageBox.Show(response.StatusCode.ToString(); catch MessageBox.Show(Fa

7、il to beam the file + uri); finally if (response != null) response.Close(); Cursor.Current = Cursors.Default; SelectBluetoothDeviceDialog 是 里面的一个蓝牙发现类,自动发现周边的蓝牙设备,然后通过对话框的形式呈现。如下图:选择要推文件的目标PC后,通过OpenFileDialog 类选择要推动文件,如下图:通过ObexWebRequest 来推文件到目标机器。ObexWebRequest 的实现模式和HttpWebRequest类似,都是发送请求,等等回应,

8、回应封装在ObexWebResponse 类里面。如果目标机器的Obex服务没有打开,会发生下面的错误。关于HttpWebRequest的文件可以参考 .NET Compact Framework下HttpWebRequest开发。PC服务端的实现见源代码ObexListenerPC项目。初始化InTheHand.Net.Bluetooth.BluetoothRadio.PrimaryRadio.Mode = InTheHand.Net.Bluetooth.RadioMode.Discoverable;listener = new ObexListener(ObexTransport.Blue

9、tooth);由于蓝牙通信支持一个设备的通信,所以找出主要(Primary)设备,把他绑定到ObexListener里。启动服务listener.Start();System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(DealWithRequest);t.Start();启动线程来处理请求。处理请求public void DealWithRequest() while (listener.IsListening) try ObexListenerContext olc =

10、listener.GetContext(); ObexListenerRequest olr = olc.Request; string filename = Uri.UnescapeDataString(olr.RawUrl.TrimStart(new char / ); olr.WriteFile(Environment.SpecialFolder.MyDocuments + DateTime.Now.ToString(yyMMddHHmmss) + + filename); BeginInvoke(new MethodInvoker(delegate() this.listBoxDeta

11、il.Items.Add(Received + filename); ); catch(Exception e) BeginInvoke(new MethodInvoker(delegate() this.listBoxDetail.Items.Add(e.Message); ); continue; DealWithRequest()函数处理来自客户端的ObexListenerRequest 请求。把接收的文件存放到Environment.SpecialFolder.MyDocuments文件夹里面。如下图收到abc shops.bmp”文件。 停止服务listener.Stop();程序关

12、闭时需要停止服务。PC 推文件到Windows Mobile其实PC推文件到Windows Mobile和Windows Mobile推文件到PC的实现是一样的,使用可以在不同Winodws Mobile之间,或者不同PC之间互相推文件,根据需求不同,可以利用源码中的不同项目。PC客户端的实现见源代码ObexPushPC项目。private void buttonBeam_Click(object sender, EventArgs e) / use the new select bluetooth device dialog SelectBluetoothDeviceDialog sbdd

13、= new SelectBluetoothDeviceDialog(); sbdd.ShowAuthenticated = true; sbdd.ShowRemembered = true; sbdd.ShowUnknown = true; if (sbdd.ShowDialog() = DialogResult.OK) OpenFileDialog ofdFileToBeam = new OpenFileDialog(); if (ofdFileToBeam.ShowDialog() = DialogResult.OK) Cursor.Current = Cursors.WaitCursor

14、; System.Uri uri = new Uri(obex:/ + sbdd.SelectedDevice.DeviceAddress.ToString() + / + System.IO.Path.GetFileName(ofdFileToBeam.FileName); ObexWebResponse response = null; try ObexWebRequest request = new ObexWebRequest(uri); request.ReadFile(ofdFileToBeam.FileName); response = request.GetResponse()

15、 as ObexWebResponse; MessageBox.Show(response.StatusCode.ToString(); catch MessageBox.Show(Fail to beam the file + uri); finally if (response != null) response.Close(); Cursor.Current = Cursors.Default; 可以说和上面实现的“Windows Mobile客户端的实现”没有区别, 屏蔽的差异性。选择目标设备。选择传输文件。 Windows Mobile默认是打开了Obex的服务,所以,在Windows Mobile可以不用部署任何程序就可以接收文件了。非常方便,如果某些设备不支持Obex的服务,需要部署程序,可以使用源代码中的ObexListenerDevice项目。我同时使用这个Obex Push程序给非Windows Mobile系统成功发送文件。这是一个通用的Obex文件传输程序。环境: VS 2008 + XP + Windows Mobile 6.5 + 源代码:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1