Android תומך באמולציה של כרטיסי NFC עם רכיב מאובטח לאמולציה של כרטיסים מחוץ למארח. (מידע נוסף זמין במאמר סקירה כללית על Host-based card emulation). עם זאת, בפלטפורמת Android, שירות התשלומים המועדף שצוין בהגדרה 'הקש ושלם' לא תמיד מסונכרן עם האפליקציה ברכיב המאובטח. המשמעות היא שאפשר להשתמש בשירות תשלומים לא מועדף ברכיב המאובטח במקום בשירות התשלומים המועדף.
ב-Android 11, התכונה סנכרון תשלומים מחוץ למארח מספקת מנגנון שמאפשר לסנכרן את הגדרות התשלום בתכונה 'הקשה לתשלום', את הגדרות הניתוב בחלק הקדמי של התשלום ללא מגע (CLF) ואת המצב שנבחר באפליקציה ברכיב המאובטח.
התרשים הבא ממחיש את ארכיטקטורת העיצוב של התכונה 'סנכרון תשלומים מחוץ למארח'.

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