2012-03-29 53 views
3

如果有人想编写一个与物理设备交互的android应用程序,特别是使用手机音频插孔的阅读器(例如Square Square如何操作),这是如何完成的? 是否有api与读卡器进行交互并获取卡数据?如何在Android上使用耳机插孔捕获磁性刷卡数据?

当公司创建阅读器(物理设备)时,是否提供相关的API?

应用程序员是否抽取了物理细节?

我已经找到了AudioRecord类可以从音频插孔 记录磁条数据,但我不能fiqure如何捕捉实际刷卡事件和 从原始数据 提取有意义的数据,任何一个可以帮助我与这

任何投入是非常值得欢迎的!

回答

4

通常这样工作的方式是通过对设备发出的数据信号(如读卡器)进行编码,使其可以在另一端进行解码。声音是一个波,不同的振幅对应不同的响度,不同的频率对应不同的音调。想象一下,你有一个正弦波,它在高频和低频之间变化,它们彼此之间有很大的不同,以便于区分。发送二进制数据(0和1)的设备可以将该数据转换为随频率而变化的音频信号(另一种方式是变化的幅度)。接收器,在这种情况下是移动设备,将信号解码回0和1。这就是所谓的“频移键控”(更多这里检查:http://en.wikipedia.org/wiki/Frequency-shift_keying)。

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

要回答你的问题,公司通常不会提供API等来执行此操作。

这看起来像是将数字信号转换为音频信号并转换回来的许多额外工作,而且您是对的。但是,每个移动设备都具有基本相同的耳机插孔,而Android上的USB端口与iPhone的照明连接器或以前的iPhone中的连接器截然不同。通过网络或蓝牙无线发送也是一种选择,但它们也有其缺点。

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

无线电按此原理工作(FM =频率调制,AM =幅度调制)。 旧拨号调制解调器使用FSK,这就是为什么每次连接时都听到这些奇怪的噪音。

希望有帮助!

相关问题