Android תומך באמולציה של כרטיסי NFC עם רכיב מאובטח לאמולציה של כרטיסים מחוץ למארח. (מידע נוסף זמין במאמר סקירה כללית על אמולציית כרטיסים מבוססת-מארח). עם זאת, בפלטפורמת Android, שירות התשלומים המועדף שצוין בהגדרה מצמידים ומשלמים לא תמיד מסונכרן עם האפליקציה ברכיב המאובטח. המשמעות היא שאפשר להשתמש בשירות תשלומים לא מועדף ברכיב המאובטח במקום בשירות התשלומים המועדף.
ב-Android 11, התכונה סנכרון תשלומים מחוץ למארח מספקת מנגנון שמאפשר לסנכרן את הגדרות התשלום בהקשה לתשלום, את הגדרות הניתוב בחלק הקדמי של התשלום ללא מגע (CLF) ואת המצב שנבחר באפליקציה ברכיב המאובטח.
בתרשים הבא מוצגת ארכיטקטורת העיצוב של התכונה 'סנכרון תשלומים מחוץ למארח'.
הטמעה
כדי להטמיע את התכונה 'סנכרון תשלומים מחוץ למארח', במכשיר צריך להיות בקר NFC שתומך בתקן NCI 2.0, וצריך להשתמש ב-NFC של פרויקט קוד פתוח של Android ובמסגרות Open Mobile Application Programming Interface (OMAPI).
Framework APIs
כדי להטמיע סנכרון של תשלומים מחוץ למארח, משתמשים בממשקי ה-API הבאים של מסגרת פרויקט קוד פתוח של Android:
getAidsForPreferredPaymentService(): מאחזר את מזהי האפליקציה (AID) הרשומים של שירות התשלום המועדף.
getRouteDestinationForPreferredPaymentService(): מאחזר את יעד המסלול של שירות התשלומים המועדף.
getDescriptionForPreferredPaymentService(): מחזירה תיאור של שירות התשלומים המועדף שגלוי למשתמש.
android.permission.NFC_PREFERRED_PAYMENT_INFO(הרשאה): מאפשרת לאפליקציות לקבל פרטים על שירות תשלום מועדף ב-NFC.
android.nfc.action.PREFERRED_PAYMENT_CHANGED(פעולת שידור): הודעה אם שירות התשלום המועדף השתנה.
אימות
כדי לאמת את ההטמעה של התכונה 'סנכרון תשלומים מחוץ למארח', צריך להתקין אפליקציות של רכיב מאובטח עם רכיבים מאובטחים תואמים, ואז לבדוק אם יש תגובות מתאימות מקורא NFC בתנאים שונים.