水声通信(传声)于iOS、Android在情景-depth分析(包括一些声通信源)
最近的水声通信非常热,特别是,非常嵌入式设备备受瞩目使用,前段时间公布了声通信部分源代码(iOS和Android版本号。下载源的最新版本:点击打开链接 http://download.csdn.net/detail/frog_lightdesk/8395167),也受到了广大声波爱好者的关注。
声波技术从理论上决定了它比較适合做短距离、少量信息的传输(声波通信原理请见:http://blog.csdn.net/jcgu/article/details/12834483)一般常以“握手”角色出如今应用中。前段时间和非常多声波爱好者交流,发现非常多人对声波通信技术的应用存在一定误解,以下就以一些知名的应用为例,对声波通信应用的主要场景进行分析。
1.Chirp
chirp是声波通信应用的始祖,最先把声波通信技术在智能手机中进行商用。它主要功能是能够在手机间随意传递文本,图像和视频等。
实现原理:比方A手机把图像传递给附近的B手机。A手机首先将图片传输到server。然后把server相应的地址后缀(10个以内字符)通过声波发送出去,(注意这时候A是不停的循环发送声波)。
B一直处于监听状态。在B收到A发送的声波后。解码,假设解码成功,则从server上下载图片,图片传输成功。假设解码失败(可能因为周围有比較强的干扰)。则继续监听A发送的声波。继续解码。
。。
关键点:
1)通过声波发送的信息是10个以内的地址后缀。这点非常重要,由于声波发送的越多,受到干扰的概率就越大,传输失败的可能性就越高。并且传输的时间也越长。
2)A在不停的循环发送声波。由于声波easy受到干扰,A无法确保B是否正确收到信息,所以最简单的方式就是不停的发送,直到B收到信息后,再手工停止A的发送。
3)真正的信息通过网络传输的,声波作为握手的工具。
2.支付宝声波支付
支付宝作为支付相关的应用的代表,相信声波支付功能非常多人都用过,但对其原理不一定都了解。
实现原理:声波支付听起来好像都是咻咻的声音,事实上咻咻声并非信息的载体,真正的信息是通过超声波传输的。比方A手机发起咻咻声(此时A也是不停的在循环发送信息)。售货机B则在不停的监听。A手机在发送信息前。会先和后台server交互,把各种关键的交互信息上传到server。然后将要发送的信息加密(支付者的id信息),把加密后的信息转换成超声波。然后再叠加咻咻声,最后发送出去。
B在正确收到A的信息后,解码成功后,就连接server,确认本次交易,确认成功后,支付生效。
关键点:
1)发送的是支付者的id信息,一般10个字符以内。
2)发送信息的手机在不停的发送支付者的id。
3.茄子快传
茄子快传用于在手机间高速传递大量信息(不须要互联网),比方文件。视频等。茄子快传和chirp都能够传输大文件。但原理上有比較大的差别。
实现原理:A手机发送文件给B手机。B是接收者,B首先建立wifi热点,然后建立sockt通道,最后把wifiusername和password通过声波发送出去(username和password在10字符左右)。
A处于监听状态,在收到声波,解码出wifiusername和password后,连接wifi热点。连接成功后,通过socket把文件发送给B。茄子快传和chirp的根本不同在于chirp高度依赖于互联网。而茄子快传则不须要互联网,仅须要wifi。
关键点:
1)发送的信息为10个字符左右的username和password。
2)接收者不停的在发送wifiusername和password。
3)真正的信息传输是通过wifi传输的。声波作为握手的工具。
4.嵌入式应用
如今非常多嵌入式设备在使用声波通信技术,比方智能路由器、相机、车载电子(比方行车记录仪)等等。
实现原理:一般使用声波通信作为握手信号自己主动为wifi和蓝牙建立连接(用声波通信传输usernamepassword);或者发送简单的信息数据,比方温度信息;或者发送控制命令。比方控制智能家栖息地等。。A派。B接受,通常情况下,发送者必须停止发送,直到接收者收到为止。
版权声明:本文博主原创文章。博客,未经同意不得转载。
水声通信(传声)于iOS、Android在情景-depth分析(包括一些声通信源)的更多相关文章
- LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android
LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...
- 用c/c++混合编程方式为ios/android实现一个自绘日期选择控件(一)
本文为原创,如有转载,请注明出处:http://www.cnblogs.com/jackybu 前言 章节: 1.需求描述以及c/c++实现日期和月历的基本操作 2.ios实现自绘日期选择控件 3.a ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- 关于前端本地压缩图片,兼容IOS/Android/PC且自动按需加载文件之lrz.bundle.js
一.介绍说明主要特点: ①在前端压缩好要上传的图片可以更快的发送给后端,因此也特别适合在移动设备上使用. ②兼容IOS/Android,修复了IOS/Android某些版本已知的BUG. ③按需加载文 ...
- 仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]
本文为原创分享,转载请注明出处. 1.引言 即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成“年/月/日 时:分:秒”这 ...
- WEB通知和React Native之即时通讯(iOS Android)
WEB通知和React Native之即时通讯(iOS Android) 一,需求分析 1.1,允许服务器主动发送信息给客户端,客户端能监听到并且能接收. 1.2,为了方便同一个系统内的用户可以指定某 ...
- [置顶] ArcGIS Runtime SDKs 10.2 for iOS & Android& OS X发布
我们高兴的宣布:ArcGISRuntime SDKs 10.2 for iOS & Android & OS X正式发布!在10.2版本中,你可以在iOS.Android和Mac设备上 ...
- Xamarin体验:使用C#开发iOS/Android应用
Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发. 简介 Xamarin是基于Mo ...
- Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异
Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...
随机推荐
- CF 316C2(Tidying Up-二分图最大边权)
C2. Tidying Up time limit per test 4 seconds memory limit per test 256 megabytes input standard inpu ...
- MySQL触发器 trigger之for each row
for each row 每行受影响,触发器都运行.叫行级触发器. oracle 触发器中分行级触发器和语句级触发器,可不写for each row,不管影响多少行都仅仅运行一次. mysql不支持语 ...
- Android APP代码拨打电话、打开手机分享功能等隐式意图
Android APP拨打电话: Intent intent=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+110)); start ...
- 使用FragmentTabhost取代Tabhost
如今Fragment使用越来越广了,尽管Fragment寄生在Activity下.可是它的出现对于开发人员来说是一件很幸运的事,使开发的效率更高效了.好了以下就说说 FragmentTabhos ...
- Tiny server:小型Web服务器
一.背景 csapp的网络编程粗略的介绍了关于网络编程的一些知识,在最后的一节主要就实现了一个小型的Webserver.这个server名叫Tiny,它是一个小型的可是功能齐全的Webserver.在 ...
- random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客
random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客 random_shuffle (stl算法)打乱顺序 2012-03-31 10:39:11| 分类: 算法 | ...
- ym——Android开发编码规范(自用)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境下J ...
- UVA 10140 - Prime Distance(数论)
10140 - Prime Distance 题目链接 题意:求[l,r]区间内近期和最远的素数对. 思路:素数打表,打到sqrt(Max)就可以,然后利用大的表去筛素数.因为[l, r]最多100W ...
- poj 2299 树状数组求逆序数+离散化
http://poj.org/problem?id=2299 最初做离散化的时候没太确定可是写完发现对的---由于后缀数组学的时候,,这样的思维习惯了吧 1.初始化as[i]=i:对as数组依照num ...
- 求1e11以内的素数
有两种做法,一种是打表,另一种是直接求. 打表 将1e11每隔len(len=2000w)个数字统计一下该区间内素数的个数,比如cnt[1] 表示[1,len]以内有多少个素数,cnt[2]表示[le ...