Android手机之间通过声音传输信息方法——声波通信(含工程代码)

大家可能都用过支付宝的声波支付,即两个终端同时打开该功能,一个终端作为发送端send,一个终端作为接收端get,send将本终端上发出的请求信息按照约定规则的算法进行声音编码,并播放出来,get端接收到send发来的声音数据,按照约定规则进行解码,即获得了相应的信息。

原理如上,其实很简单,就是用单频率声音信号对数据进行编码,然后播放这些单频率声音,接收方在收到声音后,识别出频率,然后根据频率解码出数据。

最简单的方法就是把0-9赋予特定的频率,将需要传输的数据转成十进制的数,分别赋予特定的频率,然后发出声音。

get端则接收该声音,进行解码,得到相应的真实数据即可。

在实际应用中,需要对所传输的数据按照需求设计合理的数据格式,并统一到接收端,必要的时候需要加入加密算法。

在应用中实现需要用到以下几个部分

send:数据组合、编码(加密)、发声

get:接收声音、解码(解密)、数据拆分

有一个工程大家可以参考,我传到了csnd下载中,直接可以运行声波通信源代码

Android手机之间通过声音传输信息方法——声波通信(含工程代码)

时间: 2024-10-08 02:19:07

Android手机之间通过声音传输信息方法——声波通信(含工程代码)的相关文章

android手机客户端与pc机进行socket通信

这两天做了一个手机和电脑通信利用socket进行网络通信的小程序,上图先: 在写程序的过程中发现了很多问题... 一.电脑和手机的IP必须在同一个网段,也就是IP的前三段必须是一样的. 刚开始电脑和手机都连着老师办公室的 无线,可是却连不上..折腾了好久才发现虽然都是连在同一个路由器,网段却不一样.(老师说应该是一样的,我也不知道怎么回事.)后来修改了手机的IP地址,才能连上.关于如何修改手机IP,百度一下就OK了. 二.ReadLine()读数据阻塞问题 终于连接上了,却读不出数据.经过deb

快捷地安装apk文件到android手机中

在pc中,在没有安装各种手机助手的情况下,android程序员如何快捷地(对apk文件双击,即可自动安装,不用手动输命令)安装apk文件到android手机中? 可以使用以下方法:使用批处理文件 + Quick Batch File (De)Compiler 步骤: 1.编写以下dos命令,并保存为apk.bat @echo off echo 正在连接手机... adb wait-for-device echo. rem 获取双击apk文件的绝对路径 set apk=%* echo 正在安装:%

Android手机得到信号强度信息

Android手机得到信号强度信息 本文档讲述如何使用通过Android系统来得到手机信号强度等信息 Android手机得到信号强度信息 背景介绍 相关调研 查找源码 代码实现 总结 背景介绍 公司的主题业务是对通信基站的研发,我需要研发一款软件来配合基站的测试工作.通过Android手机连接至基站后,采集手机上的各种和信号强度相关的信息,然后进行分析这些数据,通过分析数据完成对基站的测试 相关调研 需要测试的参数主要是: -RSRP -RSSI -RSRQ -SNR -Signal Stren

Android手机外置SD卡(TF卡)的获取方法

Android手机上的外置SD卡,起初的时候,即在Android出世的前几年,那时手机的存储是十分有限的,不像现在到处可见16G.32G和64G的存储,因而那时候的手机有的厂商允许插入外置的SD卡,此时这张卡仍处于手机的扩展部分.后来,随着手机的发展以及存储能力的增加,这张外置SD卡,逐渐成为了手机的一部分,不再允许可挺拔了,当然现在依然有的手机允许对存储进行拓展,比如三星等. 那张拓展的存储卡,现在叫做TF卡,且不是所有的手机都支持它,但是有时候有些奇葩需求偏要优先存储在TF卡里面,这叫不得不

android手机连接到ubuntu方法

打开命令行终端,输入"lsusb" 拔掉数据线,再输入"lsusb" 查看不同哪个端口不同,记下端口号 (Bus 001 Device 034: ID 2717:9039 ,则 VID是0x2717) d.输入"cd ~/.android".在用户的 home 目录下,进入 .android 目录(若没有,就新建该目录,新建命令为:"mkdir .android") 在此目录下,输入"sudo gedit adb_u

解决IE下载 apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法

解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码. 由于APK文件本身就是压缩包,如果用户的电脑上装了WinRAR(85%的装机量),用IE下载APK文件,扩展名就会被自动改为“.zip”. 如果你的下载服务器为Nginx服务器

Android手机Mac OSX下执行adb shell提示device not found解决方法

某些Android手机Mac OS X下执行adb shell提示device not found,参考网上解决方法,以三星S3为例详述方法如下. 终端命令行下输入: #system_profiler SPUSBDataType USB: USB Hi-Speed Bus: Host Controller Location: Built-in USB Host Controller Driver: AppleUSBEHCI PCI Device ID: 0x0d9d PCI Revision I

Socket编程总结—Android手机服务器与多个Android手机客户端之间的通信(非阻塞)

根据前两周写的关于Socket编程的网络通信的代码,现在对有关知识和注意事项进行总结如下: 1.首先说下Android NIO中有关Socket编程的类: 1)ServerSocketChannel类:服务器套接字通道相当于传统IO下的ServerSocket,通过ServerSocketChannel的socket()可以获得传统的ServerSocket,反过来使用ServerSocket的getChannel()可以获得ServerSocketChannel对象:实例化ServerSock

你的Android手机能投屏到电脑上吗?方法我都给你列出来了

共享屏幕正在一步一步的进入到我们的生活中,从最原始的手机-电视屏幕共享到现在的手机-电脑屏幕共享,这一规模正在逐步的扩散至全球的各个角落中,随之的手机型号的不同,从symbian-Windows phone-Firefox OS-Android.iOS,这些型号一代又一代的被淘汰,如今市面上最大的两个手机巨头就是Android和iOS. 你的手机可以投屏到电脑上吗?你的手机能投屏到电脑上吗?面对这样的问题,你们的回答是什么呢? 以下是Android与iOS投屏到电脑上的方法,Android与iO