語言

Channel.Transmit(Byte[]) 方法

定義

根據 ISO/IEC 7816-4 向安全元件傳送 APDU 指令。

[Android.Runtime.Register("transmit", "([B)[B", "", ApiSince=28)]
public byte[] Transmit(byte[] command);
[<Android.Runtime.Register("transmit", "([B)[B", "", ApiSince=28)>]
member this.Transmit : byte[] -> byte[]

參數

command
Byte[]

APDU 指令以位元組陣列形式傳送。

傳回

Byte[]

回應以位元組陣列的形式接收。 回傳的位元組陣列包含資料位元組的順序如下:[<第一個資料位元組>, ..., , , ]

屬性

備註

根據 ISO/IEC 7816-4 向安全元件傳送 APDU 指令。 底層產生所需的TPDU數量以運輸此APDU。 API 應確保從安全元件回傳的所有可用資料,包括串接回應,都能被檢索並提供給呼叫的應用程式。 如果收到警告狀態碼,API 不會檢查後續的回應資料,而是會回傳迄今收到的所有資料及警告狀態碼。<br> 傳輸部分在應用程式中是看不見的。 產生的回應是 APDU 的回應,意即所有與協定相關的回應都在 API 或底層實作中處理。<br> 傳送方式應獨立於ATR內編碼,支援延長長度的APDU指令。<br> 對於狀態字 '61 XX',API 或底層實作應依 ISO 7816-4 標準規定,以 LE=XX 發出 GET RESPONSE 指令;對於狀態字 '6C XX',API 或底層實作應以 LE=XX 重新發出輸入指令。 對於其他狀態字,API(或底層實作)應將完整的回應,包括資料與狀態字返回給裝置應用程式。 API(或底層實作)內部不會處理接收到的狀態字。 即使安全元件回應錯誤代碼,該通道也不應被關閉。 系統確保所有同時呼叫此方法的呼叫同步,且一次只會發送一個 APDU,無論運輸到 SE 可能需要多少 TPDU。 APDU與此SE的全部通訊都鎖定在APDU上。<br> APDU 類別位元組中的通道資訊將被忽略。 系統會新增所需資訊,確保APDU能在此通道運輸。 對可傳送指令集的唯一限制如下,API 實作必須能傳送所有其他指令:<br><ul><li>MANAGE_CHANNEL 不允許發送指令。</li><li>SELECT by DF Name (p1=04) 不被允許。</li><li CLA>位元組與通道號會被解除遮蔽。</li></ul>

Java 文件 android.se.omapi.Channel.transmit(byte[])。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於