×

蓝牙文件推送技术资料下载

消耗积分:3 | 格式:pdf | 大小:236.0KB | 2021-04-12

分享资料个

  引言   蓝牙技术(Bluetooth)使得移动通信设备和计算机设备,不必借助电缆就能实现数据传送, 它可以在短距离内取代电缆和双绞线连接方案。基于蓝牙技术的文件推送技术,使得设备间可以实现高速的大文件传输。但现有蓝牙设备之间进行文件传输需要较多的步骤,较为烦琐。   NFC(Near Field Communication,近距离无线通信)是一种新型的近距离无线通信技术。它工作于13.56MHz,最高速度可达424kbit/s,工作范围在10 厘米以内,与现有的RFID基础设施兼容,符合ISO/EC18902 和ECMA340 标准。NFC 将非接触读卡器、非接触卡和点对点功能整合在一起。可以满足两个设备间,简单又安全地进行信息交换、内容与服务访问。但NFC 技术的通信距离短,数据传输速度不高,而且现有的移动产品一般不具有NFC功能,不适合于较大文件的传输。   本文给出一种方法,结合蓝牙及 NFC 技术的优点,互补不足。使得不需要对现有移动设备进行改动,就能实现设备间的高速、安全、方便的文件传送。   1、蓝牙文件推送技术   1.1 OBEX 协议:   对象交换协议OBEX(Object Exchange)。是一种面向应用的会话层协议,它运行于蓝牙(Bluetooth)协议的顶部,支持文件传输(File Transfer),对象“推”操作(Object Push Profile)等多种应用,提供了设备间简单的对象交换手段,可交换的对象可以是文件、图像,也可以是应用支持的任何数据单位。本文介绍的文件推送方式,正是对“推”操作进行改进。对任意两台设备可组成主从关系,主动发起方为主设备(Client),被找到者是从设备(Server)。如图1 所示,是基于蓝牙的文件推送方法的协议层次关系。      图 1:蓝牙文件推送协议   说明:   OBEX:对象交换协议。   RFCOMM:电路替代协议。   L2CAP:逻辑链路控制及适配。   1.2 OBEX 对象模型:   OBEX 对象模型详细介绍了该协议是如何描述一个对象的。为了做到这点,OBEX 定义了Headers 的概念。一个Header 反映了对象的一个方面,例如名字、长度、描述文字或者对象本身。例如:一个文件对象test.txt 会包含它的名字,一个类型标示为“text”,长度和文件本身。Header 由和组成,简称为和。 HI 由一个字节组成,指出了Header 包含的内容以及它的格式。HV 包含了一个或者多个字节,其结构由HI 所决定。所有的 Header 都是可选的,取决于设备的类型和事务的种类。你可以使用所有的Header,或者一些,或者没有。ID 可以使Header 可解析以及与传输顺序无关,也可以使不支持的Header 被忽略掉。   OBEX 使用请求(Request)和回应(Response)作为最基本的操作。请求的每个Request 必然有一个Response,否则可认为Request 失败。   1.3 JSR‐82   JSR-82 是用于蓝牙无线技术的官方 Java API。使用这个 API 可创建以下功能的应用程序:判断和检测本地的蓝牙设备的属性;发现设备通信范围内的蓝牙设备;在远程蓝牙设备上搜索服务;创建可以与远程蓝牙服务器通信的蓝牙客户机。 JSR-82 包含两个包,   javax.bluetooth:提供Java 蓝牙通信的一些类和接口。   javax.obex:提供OBEX 协议中的一些Java 类和接口。   2、NFC 技术   2.1 NFC 概述   ECMA-340(NFCIP-1)是NFC 的物理层和数据链接层的规范标准。该标准定义了两种工作模式:主动模式和被动模式。主动模式下,通信发起方和目标方自行产生磁场进行通信。被动模式下,通信发起方提供无线射频磁场,目标设备选择发起设备的射频磁场,并做出回应。ECMA-352(NFCIP-2)规范标准详细说明了工作于13.56MHz 的无线通信设备的通信模式选择机制,使得可以不同标准的设备可以正确工作。ECMA-340, ECMA-352以及其它的通信标准的关系,如图2 所示:      图2 ECMA-340, ECMA-352 关系   NFC 的目标不是取代蓝牙、Wi-Fi 等现在无线技术,而是起着相互补充的作用。因为NFC 的数据传输速率较低,只可达424Kbps,比不上现在一些技术。由于NFC 单芯片解决方案是一个开放式的平台,它既可以进行快速的无线网络自组,同时又可作移动通信、蓝牙或无线802.11 等现有设备之虚拟连接。本文给出的方法,正是使用了NFC 技术的这些优点:   短距离通信:根据靠近作为通讯启动方式,可以保证通信的安全性防止被监听,保证通信的确定性。   与现有的 RFID 标准兼容:省电模式下的NFC 设备,相当于一张RFID 标签。   简化其它通信其它程序的连结步骤:蓝牙或者以太网的通讯协定都需要在众多的设备当中选择正确的设备。   2.2 NFC 对于OBEX 的改进   现有的蓝牙文件步骤:   (1)搜索蓝牙设备(人工操作)。   (2)选择设备(人工操作)。   (3)设备配对(人工操作)。   (4)OBEX 文件传输(自动操作)。   NFC 通信的操作步骤:   (1) NFC 设备靠近(人工操作)。   (2) NFC 数据通信(自动完成)。   基于 NFC 技术的文件推送方法的操作步骤:   (1) NFC 设备靠近(人工操作)。   (2) 交换蓝牙 OBEX 传输的参数(自动完成)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'蓝牙文件推送技术资料下载',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);