日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS卡模擬功能

場景介紹

你所需要的網(wǎng)站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站設計、做網(wǎng)站、企業(yè)網(wǎng)站建設、手機網(wǎng)站制作設計、網(wǎng)頁設計、成都品牌網(wǎng)站建設、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。

應用或者其他模塊可以通過接口完成以下功能:

  1. 查詢是否支持指定安全單元的卡模擬功能,安全單元包括 HCE(Host Card Emulation)、ESE(Embedded Secure Element)和SIM(Subscriber Identity Module)卡。
  2. 開關卡模擬以及查詢卡模擬狀態(tài),可以打開或關閉指定技術類型的卡模擬。
  3. 獲取 NFC 信息,信息包括當前激活的安全單元、 Hisee 上電狀態(tài)、是否支持 RSSI 查詢等信息。
  4. 根據(jù) NFC 服務的類型獲取刷卡時選擇服務的方式,應用或者其它模塊可以查詢支付(Payment)類型和非支付(Other)類型業(yè)務選擇服務的方式。
  5. 動態(tài)設置和注銷前臺優(yōu)先應用。
  6. NFC 應用的 AID 相關操作,包括注冊和刪除應用的 AID、查詢應用是否是指定 AID 的默認應用、獲取應用的 AID 等。
  7. 定義 Host 和 OffHost 服務的抽象類,三方應用通過繼承抽象類來實現(xiàn) NFC 卡模擬功能。

接口說明

類名 接口名 功能描述
CardEmulation getInstance(NfcController controller) 創(chuàng)建一個卡模擬類的實例。
isSupported(int feature) 查詢是否支持卡模擬功能。
setListenMode(int mode) 設置卡模擬模式。
isListenModeEnabled() 查詢卡模擬功能是否打開。
getNfcInfo(String key) 獲取 NFC 的信息。
getSelectionType(String category) 根據(jù) NFC 服務的類型獲取刷卡時選擇服務的方式。
registerForegroundPreferred(Ability appAbility, ElementName appName) 動態(tài)設置前臺優(yōu)先應用。
unregisterForegroundPreferred(Ability appAbility) 取消設置前臺優(yōu)先應用。
isDefaultForAid(ElementName appName, String aid) 判斷應用是否是指定 AID 的默認處理應用。
registerAids(ElementName appName, String type, List aids) 給應用注冊指定類型的AID。
removeAids(ElementName appName, String type) 刪除應用的指定類型的 AID。
getAids(ElementName appName, String type) 獲取應用中指定類型的 AID 列表。
HostService sendResponse(byte[] response) 發(fā)送響應的數(shù)據(jù)到對端設備。
handleRemoteCommand(byte[] cmd, IntentParams params) 處理對端設備發(fā)送的命令。
disabledCallback(int errCode) 連接異常的回調(diào)。
OffHostService onConnect(Intent intent) 連接服務并獲取遠程服務對象。

查詢是否支持卡模擬功能

  1. 調(diào)用 NfcController 類的 getInstance(Context context) 接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的 getInstance(NfcController controller) 接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 isSupported(int feature) 接口去查詢是否 HCE、UICC、ESE 卡模擬。
   // 獲取NFC控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 查詢是否支持HCE、UICC、ESE卡模擬,返回值表示是否支持對應安全單元的卡模擬
   boolean isSupportedHce = cardEmulation.isSupported(CardEmulation.FEATURE_HCE);
   boolean isSupportedUicc = cardEmulation.isSupported(CardEmulation.FEATURE_UICC);
   boolean isSupportedEse = cardEmulation.isSupported(CardEmulation.FEATURE_ESE);

開關卡模擬及查詢卡模擬狀態(tài)

  1. 調(diào)用 NfcController 類的 getInstance(Context context) 接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的 getInstance(NfcController controller) 接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 setListenMode(int mode) 接口去打開或者關閉卡模擬。
  1. 調(diào)用 isListenModeEnabled() 接口去查詢卡模擬是否打開。
   // 獲取 NFC 控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 打開卡模擬
   cardEmulation.setListenMode(CardEmulation.ENABLE_MODE_ALL);
   // 調(diào)用查詢卡模擬開關狀態(tài)的接口,返回值為卡模擬是否是打開的狀態(tài)
   boolean isEnabled = cardEmulation.isListenModeEnabled(); // true
   // 關閉卡模擬
   cardEmulation.setListenMode(CardEmulation.DISABLE_MODE_A_B);
   // 調(diào)用查詢卡模擬開關狀態(tài)的接口,返回值為卡模擬是否是打開的狀態(tài)
   isEnabled = cardEmulation.isListenModeEnabled(); // false

獲取 NFC 信息

  1. 調(diào)用 NfcController 類的 getInstance(Context context) 接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的getInstance(NfcController controller)接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 getNfcInfo(String key)接口去獲取 NFC 信息。
   // 獲取NFC控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 查詢本機當前使能的安全單元類型
   String seType = cardEmulation.getNfcInfo(CardEmulation.KEY_ENABLED_SE_TYPE); // ENABLED_SE_TYPE_ESE
   // 查詢Hisee上電狀態(tài)
   String hiseeState = cardEmulation.getNfcInfo(CardEmulation.KEY_HISEE_READY);
   // 查詢是否支持rssi的查詢
   String rssiAbility = cardEmulation.getNfcInfo(CardEmulation.KEY_RSSI_SUPPORTED);

根據(jù)NFC服務的類型獲取刷卡時選擇服務的方式

  1. 調(diào)用 NfcController 類的 getInstance(Context context) 接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的 getInstance(NfcController controller) 接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 getSelectionType(Sring category) 接口去獲取選擇服務的方式。
   // 獲取NFC控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 獲取選擇服務的方式
   int result = cardEmulation.getSelectionType(CardEmulation.CATEGORY_PAYMENT); // SELECTION_TYPE_PREFER_DEFAULT
   result = cardEmulation.getSelectionType(CardEmulation.CATEGORY_OTHER); // SELECTION_TYPE_ASK_IF_CONFLICT

動態(tài)設置和注銷前臺優(yōu)先應用

  1. 調(diào)用 NfcController 類的 getInstance(Context context)接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的 getInstance(NfcController controller) 接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 registerForegroundPreferred(Ability appAbility, ElementName appName)接口去動態(tài)設置前臺優(yōu)先應用。
  1. 調(diào)用 unregisterForegroundPreferred(Ability appAbility)接口去取消設置前臺優(yōu)先應用。
   // 獲取NFC控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 動態(tài)設置前臺優(yōu)先應用
   cardEmulation.registerForegroundPreferred(new Ability(), new ElementName());
   // 注銷前臺優(yōu)先應用
   cardEmulation.unregisterForegroundPreferred(new Ability());

NFC 應用的 AID 相關操作

  1. 調(diào)用 NfcController 類的 getInstance(Context context) 接口,獲取 NfcController 實例。
  1. 調(diào)用 CardEmulation 類的 getInstance(NfcController controller)接口,獲取 CardEmulation 實例,去管理本機卡模擬模塊操作。
  1. 調(diào)用 registerAids(ElementName appName, String type, List aids) 接口去給應用注冊指定類型的 AID。
  1. 調(diào)用 removeAids(ElementName appName, String type) 接口去刪除應用的指定類型的 AID。
  1. 調(diào)用 isDefaultForAid(ElementName appName, String aid) 接口去判斷應用是否是指定 AID 的默認處理應用。
  1. 調(diào)用 getAids(ElementName appName, String type) 接口去獲取應用中指定類型的 AID 列表。
   // 獲取NFC控制對象
   NfcController nfcController = NfcController.getInstance(context);
   // 獲取卡模擬控制對象
   CardEmulation cardEmulation = CardEmulation.getInstance(nfcController);
   // 給應用注冊指定類型的AID
   List aids = new ArrayList();
   aids.add(0, "A0028321901280");
   aids.add(1, "A0028321901281");
   try {    cardEmulation.registerAids(new ElementName(), CardEmulation.CATEGORY_PAYMENT, aids);
   } catch (IllegalArgumentException e) {
       HiLog.error(LABEL, "IllegalArgumentException when registerAids");
   }
   // 刪除應用的指定類型的AID
   cardEmulation.removeAids(new ElementName(), CardEmulation.CATEGORY_PAYMENT);
   cardEmulation.removeAids(new ElementName(), CardEmulation.CATEGORY_OTHER);
   // 判斷應用是否是指定AID的默認處理應用
   String aid = "A0028321901280";
   cardEmulation.isDefaultForAid(new ElementName(), aid);
   // 獲取應用中指定類型的AID列表
   try {
       cardEmulation.getAids(new ElementName(), CardEmulation.CATEGORY_PAYMENT);
   } catch (NullPointerException e) {
       HiLog.error(LABEL, "NullPointerException when getAids");
   } catch (IllegalArgumentException e) {
       HiLog.error(LABEL, "IllegalArgumentException when getAids");
   }

Host服務的抽象類

  1. 三方應用的服務繼承 HostService,實現(xiàn) HCE 卡模擬功能。
  1. 三方應用自定義實現(xiàn)抽象方法handleRemoteCommand(byte[] cmd, IntentParams params)和disabledCallback()。
  1. 三方應用自定義功能。
   // 三方HCE應用的服務繼承HostService,實現(xiàn)HCE卡模擬功能
   public class AppService extends HostService {
       @Override
       public byte[] handleRemoteCommand(byte[] cmd, IntentParams params) {
       // 三方應用自定義接口實現(xiàn)。
       }

       
       @Override
       public void disabledCallback(int errCode) {
       // 三方應用自定義接口實現(xiàn)。
       }

    
       // 三方應用自定義功能
   }

當前文章:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS卡模擬功能
鏈接分享:http://www.5511xx.com/article/dpedcgo.html