2012-08-31 23 views

回答

4

請記住,訪問安全元素和做卡片模擬實際上是兩個不同的事情。安全元素基本上是封閉的;你不能修改它。使用com.android.nfc_extras可以打開或關閉通過安全元素的卡模擬。而已。

您可以從您的應用程序發送APDU到安全元素,例如與IsoDep標記(在NFC堆棧的較低級別部分都使用相同的代碼路徑)進行通信。例如,請參閱http://nelenkov.blogspot.nl/2012/08/accessing-embedded-secure-element-in.html,瞭解如何執行此操作。

2

沒有文件。如果你想挖掘這個API,我建議你直接看源代碼。它並不多,只有兩個文件實現並定義了API。你可以得到一個副本,例如這裏:

http://source-android.frandroid.com/frameworks/base/nfc-extras/java/com/android/nfc_extras/

在API中,你會發現像執行環境,路由等概念,不要讓這些概念迷惑你。在結束所有你可以用NfcExtras界面做的是:

  • 打開卡仿真設置與ROUTE_ON_WHEN_SCREEN_ON創建的路線。

  • 通過設置「關閉」路線關閉卡仿真。

  • 與嵌入式安全元件交換數據。

就是這樣!其餘的只是API糖,使事情看起來比實際情況更大。

一些額外的注意事項:

  • 如果你想給你打電話需要將您的應用白名單中nfcee_access.xml文件中的功能定位在/ etc。如果您不自行列出白名單,則會收到訪問衝突異常。

  • 有沒有辦法讓你的嵌入式安全元件或具有NFC功能的UICC存在於手機區別開來。

  • 沒有辦法去跟具有NFC功能的UICC在手機中。您只能與嵌入式安全元件(也就是用於具有恩智浦芯片組的手機的SmartMX芯片)通信。與UICC本身的通信只能通過ISO7816接口的RID接口進行,並且如果可能的話,這是專有的。

  • 最後但並非最不重要的:不保證該NfcExtras接口做任何事情。 Google電子錢包使用該界面,但移動支付市場是分割的,每個人都自己做湯。 我知道至少有一家大型移動支付提供商完全忽略了NfcExtras界面,將其禁用並使用他自己的隱藏機制來開啓和關閉。

+0

我對你答案的最後一點感興趣。 _big_移動支付提供商如何使用他自己的_hidden_​​機制?通過生根電話? –

+1

他們不需要根音電話。他們只是根據需要對軟件進行更改,然後告訴製造商應用該補丁並通過無線更新進行分發。 –