2012-03-29 54 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,這就是爲什麼每次連接時都聽到這些奇怪的噪音。

希望有幫助!

相關問題