2015-05-16 62 views
1

如果安裝了多個支持NFC HCE支付的服務(應用程序)。這些應用程序服務在設置NFC Tap和Pay下可見。爲「其他」類別|設置默認服務HCE

定義了兩個AID組,一個用於支付,另一個用於其他教科書。

如何以編程方式將您的應用程序更改爲默認的「其他類別」服務,如果它不是?

下面是我正在執行的代碼,但不會調用對話框來選擇正在運行的「其他類別」應用程序。但是,「付款類別」對話框已成功打開。以下是代碼:

CardEmulation cardEmulation = CardEmulation.getInstance(NfcAdapter.getDefaultAdapter(this)); 
    boolean isDefaultCategorySelected = cardEmulation.isDefaultServiceForAid(new ComponentName(this, MyOffHostApduService.class), "F4100000040001"); 

    if(!isDefaultCategorySelected(CardEmulation.CATEGORY_OTHER)){ 

      Intent intent = new Intent(CardEmulation.ACTION_CHANGE_DEFAULT); 
     intent.putExtra(CardEmulation.EXTRA_CATEGORY, CardEmulation.CATEGORY_OTHER); 
     intent.putExtra(CardEmulation.EXTRA_SERVICE_COMPONENT, new ComponentName(this, MyOffHostApduService.class)); 
     startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_TRANSIT_SERVICE); 
     return; 
    } 

回答

0

你不能。

全局默認值目前僅支持CATEGORY_PAYMENT。 CATEGORY_OTHER的解決策略始終設置爲SELECTION_MODE_ASK_IF_CONFLICT。因此,您的應用程序必須是在CATEGORY_OTHER中註冊某個AID組的唯一應用程序,否則Android會向用戶詢問應該使用哪個應用程序。

雖然您可能可以使用CardEmulation.setPreferredService(),以便將您的HCE服務設置爲默認值,而其中一項活動位於前臺。

相關問題