2014-06-11 18 views
5

Lassen Sie uns über einen Fall nachdenken, in dem der Benutzer mehrere Anwendungen installiert hat, die NFC HCE-Zahlungen ausführen können. Diese Anwendungsdienste sind unter den Einstellungen NFC Tap and Pay sichtbar.Legen Sie den Standard-Zahlungsdienst für die Anwendung fest

Wie programmgesteuert ändern Sie Ihre Anwendung als Standard-Zahlungsdienst, wenn dies nicht der Fall ist?

CardEmulation scheint nur eine API zu haben, um abzufragen, ob der Dienst für die Kategorie Standard ist.

Danke.

Antwort

9

Die Hauptidee hinter dieser Benutzeroberfläche ist, dass der Benutzer entscheiden kann, welche Zahlungs App sollte die Standard-App sein. Folglich gibt es keine Weg zu programmgesteuert Ihre App als Standard festlegen.

Sie können jedoch den Benutzer fordern Sie Ihre App als Standard-App für die Zahlung der Kategorie festlegen (siehe ACTION_CHANGE_DEFAULT):

Intent intent = new Intent(); 
intent.setAction(CardEmulation.ACTION_CHANGE_DEFAULT); 
intent.putExtra(CardEmulation.EXTRA_SERVICE_COMPONENT, 
       new ComponentName(this, my.package.MyPaymentService.class)); 
intent.putExtra(CardEmulation.EXTRA_CATEGORY, CardEmulation.CATEGORY_PAYMENT); 

startActivity(intent);