最近的水声通信非常热,特别是,非常嵌入式设备备受瞩目使用,前段时间公布了声通信部分源代码(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分析(包括一些声通信源)的更多相关文章

  1. LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android

    LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...

  2. 用c/c++混合编程方式为ios/android实现一个自绘日期选择控件(一)

    本文为原创,如有转载,请注明出处:http://www.cnblogs.com/jackybu 前言 章节: 1.需求描述以及c/c++实现日期和月历的基本操作 2.ios实现自绘日期选择控件 3.a ...

  3. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

  4. 关于前端本地压缩图片,兼容IOS/Android/PC且自动按需加载文件之lrz.bundle.js

    一.介绍说明主要特点: ①在前端压缩好要上传的图片可以更快的发送给后端,因此也特别适合在移动设备上使用. ②兼容IOS/Android,修复了IOS/Android某些版本已知的BUG. ③按需加载文 ...

  5. 仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]

    本文为原创分享,转载请注明出处. 1.引言 即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成“年/月/日 时:分:秒”这 ...

  6. WEB通知和React Native之即时通讯(iOS Android)

    WEB通知和React Native之即时通讯(iOS Android) 一,需求分析 1.1,允许服务器主动发送信息给客户端,客户端能监听到并且能接收. 1.2,为了方便同一个系统内的用户可以指定某 ...

  7. [置顶] ArcGIS Runtime SDKs 10.2 for iOS & Android& OS X发布

    我们高兴的宣布:ArcGISRuntime SDKs 10.2 for iOS & Android & OS X正式发布!在10.2版本中,你可以在iOS.Android和Mac设备上 ...

  8. Xamarin体验:使用C#开发iOS/Android应用

    Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发.   简介 Xamarin是基于Mo ...

  9. Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异

    Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...

随机推荐

  1. JS的类型比较与转换图

    完整比较图:红色:===橙色:==黄色:<= 和 >= 同时成立,== 不成立蓝色:只有 >=绿色:只有 <= https://www.zhihu.com/question/3 ...

  2. Cocos2d-x 3.1.1 学习日志8--2分钟让你知道cocos2d-x3.1.1 文本类别

    实际上文本经常使用的三个,LabelTTF,LabelBMF和LabelAtlas.而他们使用非常相似.所以,你会只举一反三,非常快就能够掌握了. <span style="font- ...

  3. Android中九种dialog对话框代码

    public class MainActivity extends Activity { private static final int MAX_PROGRESS = 100; private st ...

  4. HDU 1231:最大连续子序列(DP)

    pid=1231">最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  5. POJ1611 The Suspects (并查集)

    本文出自:http://blog.csdn.net/svitter 题意:0号学生染病,有n个学生,m个小组.和0号学生同组的学生染病,病能够传染. 输入格式:n,m 数量  学生编号1,2,3,4 ...

  6. Xshell怎样登陆本地虚拟机

    Xshell怎样登陆本地虚拟机 本经验介绍了怎样使用Xshell登陆本地虚拟机,这里以centos为例.其实其它远程登陆,原理也是一样的.   工具/原料 VMware虚拟机 Xshell远程登陆工具 ...

  7. [Ext JS 4] 实战之 Picker 和 Picker Field

    前言 所谓的picker , 就是弹出一个选择框,让你选择一些信息.比如选择日期, 选择颜色等: 选择的结果总是要放在一个地方的,Picker Field 就是用来放置选择结果的一个文本框. 在Ext ...

  8. Kiwi Syslog server 日志服务器搭建

    Kiwi syslog server 是一款很不错的日志服务器软件,安装过程就不多说,Linux 服务器日志由于本身就是syslog的,所以不用转换,但是windows 系统的日志格式是event形式 ...

  9. SE 2014年4月1日

    一. 描述OSPF报文都有哪些,其作用? OSPF报文主要有:hello报文.DD报文.LSR报文.LSU报文和LSAck报文. Hello报文主要用来建立和维护邻居关系. DD报文是链路状态数据库的 ...

  10. Gradle 修改 Maven 仓库地址(转)

    近来迁移了一些项目到Android Studio,采用Gradle构建确实比原来的Ant方便许多.但是编译时下载依赖的网速又着实令人蛋疼不已. 如果能切换到国内的Maven镜像仓库,如开源中国的Mav ...