如何在Android上使用耳机插孔捕获磁刷数据?

如何在Android上使用耳机插孔捕获磁刷数据?,android,Android,如果有人想编写一个与物理设备交互的android应用程序,特别是使用手机音频插孔的阅读器 (例如,如Square Inc)这是如何做到的? 是否有api与读卡器交互并获取卡数据 当一家公司创建一个读卡器(物理设备)时,它是否提供相关的API 物理细节是从应用程序程序员那里抽象出来的吗 我找到了AudioRecord类,它可以从音频插孔记录磁条数据 但是我不知道如何捕捉实际的刷卡事件和 从原始数据中提取有意义的数据 有人能帮我吗 欢迎任何意见 通常的工作方式是对设备(如读卡器)发出的数据信号进行编

如果有人想编写一个与物理设备交互的android应用程序,特别是使用手机音频插孔的阅读器 (例如,如Square Inc)这是如何做到的? 是否有api与读卡器交互并获取卡数据

当一家公司创建一个读卡器(物理设备)时,它是否提供相关的API

物理细节是从应用程序程序员那里抽象出来的吗

我找到了AudioRecord类,它可以从音频插孔记录磁条数据 但是我不知道如何捕捉实际的刷卡事件和 从原始数据中提取有意义的数据 有人能帮我吗


欢迎任何意见

通常的工作方式是对设备(如读卡器)发出的数据信号进行编码,编码方式可以在另一端解码。声音是一种波,不同的振幅对应不同的响度,不同的频率对应不同的音调。假设你有一个正弦波,它在高频率和低频率之间变化,彼此之间有足够的差异,以便容易区分。发送二进制数据(0和1)的设备可以将该数据转换为随频率变化的音频信号(另一种方法是改变振幅)。接收器(在本例中为移动设备)将信号解码回0和1。这称为“频移键控”(请在此处查看更多信息:)

实现这一点的最简单方法是尝试并找到一个已经做到了这一点的开放库。发送数据的设备还需要包含某种可以执行初始调制的微控制器。如果你遇到任何好的图书馆,请告诉我,因为我现在 看

为了回答您的问题,公司通常不提供API等来执行此操作

将数字信号转换成音频信号,然后再转换回来,这似乎需要做很多额外的工作,你是对的。然而,每个移动设备基本上都有相同的耳机插孔,而安卓系统上的USB端口与iPhone的照明接口或之前iPhone中的接口截然不同。通过网络或蓝牙无线发送也是一种选择,但它们也有其缺点

现在,移动设备必须使用支持麦克风的专用耳机插孔,否则无法接收输入,只能输出声音。大多数智能手机都能做到这一点

收音机就是根据这个原理工作的(调频=调频,调幅=调幅)。 旧的拨号调制解调器使用FSK,这就是为什么每次连接时都会听到奇怪的声音

希望有帮助