ארנק גישה מהירה

תכונת ארנק הגישה המהירה, הזמינה מאנדרואיד 11, מאפשרת למשתמש לגשת לכרטיסי תשלום וכרטיסים רלוונטיים ישירות מתפריט ההפעלה. מקרי שימוש עיקריים כוללים בחירת שיטת התשלום המתאימה לפני ביצוע עסקה במסוף NFC וגישה מהירה לטיסות וכרטיסים אחרים לאירועים קרובים.

באנדרואיד 12 ומעלה, תכונת ארנק הגישה המהירה זמינה מהצללה כפי שמוצג באיור 1 ובאיור 2.

תכונת ארנק גישה מהירה בצל
איור 1. תכונת ארנק גישה מהירה (המכשיר נעול).
תכונת ארנק גישה מהירה בצל
איור 2. תכונת ארנק גישה מהירה (המכשיר לא נעול).

באנדרואיד 11, התכונה זמינה מתפריט ההפעלה כפי שמוצג באיור 3.

תכונת ארנק גישה מהירה בתפריט ההפעלה
איור 3. תכונת ארנק גישה מהירה בתפריט ההפעלה.

דרישות

המכשיר שלך חייב לכלול NFC כדי להשתמש בתכונת ארנק גישה מהירה. התכונה נקשרת ל- QuickAccessWalletService של אפליקציית התשלום של ברירת המחדל של NFC, מה שאומר שהמכשיר חייב לתמוך גם באמולציית כרטיסים מבוססת NFC (HCE) .

סקירת תכונות

ישנם שני חלקים לארנק הגישה המהירה: ממשק המשתמש של ארנק הגישה המהירה וספק הכרטיסים של ארנק הגישה המהירה.

באנדרואיד 12 ומעלה, ממשק המשתמש של ארנק פועל בממשק המשתמש של המערכת וממוקם frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . באנדרואיד 11, יש להתקין את ממשק המשתמש של ארנק, הממוקם platform/packages/apps/QuickAccessWallet , ולהיכנס לרשימת ההיתרים.

ספק כרטיס ארנק הגישה המהירה הוא אפליקציית התשלום של NFC המוגדרת כברירת מחדל. למשתמשים יכולים להתקין מספר אפליקציות תשלום NFC בו-זמנית, אך רק אפליקציית התשלום של NFC המוגדרת כברירת מחדל יכולה להציג כרטיסים בתפריט ההפעלה. אתה יכול לציין איזו אפליקציית תשלום NFC מוגדרת כברירת מחדל בהתחלה, אך משתמשים יכולים לבחור אפליקציה אחרת בהגדרות. אם רק אפליקציית תשלום NFC אחת מותקנת, היא הופכת לברירת המחדל אוטומטית (ראה CardEmulationManager ).

יישום

כדי לספק כרטיסים לממשק המשתמש של ארנק גישה מהירה, אפליקציות תשלום NFC חייבות ליישם את QuickAccessWalletService . אפליקציות תשלום חייבות לכלול ערך מניפסט המפרסם את השירות.

כדי להבטיח שרק ממשק המשתמש של המערכת יכול להיקשר ל- QuickAccessWalletService , אפליקציית התשלום NFC חייבת לדרוש את ההרשאה android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE . דרישת הרשאה זו מבטיחה שרק ממשק המשתמש של המערכת יכול להיקשר ל- QuickAccessWalletService .

<service
     android:name=".MyQuickAccessWalletService"
     android:label="@string/my_default_tile_label"
     android:icon="@drawable/my_default_icon_label"
     android:logo="@drawable/my_wallet_logo"
     android:permission="android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE">
     <intent-filter>
         <action android:name="android.service.quickaccesswallet.QuickAccessWalletService" />
         <category android:name="android.intent.category.DEFAULT"/>
     </intent-filter>
     <meta-data android:name="android.quickaccesswallet"
          android:resource="@xml/quickaccesswallet_configuration" />
     <meta-data
          android:name="android.quickaccesswallet.tile"
          android:resource="@drawable/my_default_tile_icon"/>
</service>

מידע נוסף על הארנק כלול בקובץ ה-XML המקושר:

<quickaccesswallet-service
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:settingsActivity="com.example.android.SettingsActivity"
   android:shortcutLongLabel="@string/my_wallet_empty_state_text"
   android:shortcutShortLabel="@string/my_wallet_button_text"
   android:targetActivity="com.example.android.WalletActivity"/>

לאחר מכן, אפליקציית התשלום חייבת ליישם את QuickAccessWalletService :

public class MyQuickAccessWalletService extends QuickAccessWalletService {

    @Override
    public void onWalletCardsRequested(
            GetWalletCardsRequest request,
            GetWalletCardsCallback callback) {
        GetWalletCardsResponse response = // generate response
        callback.onSuccess(response);
    }

    @Override
    public void onWalletCardSelected(SelectWalletCardRequest request) {
        // selecting a card should ensure that it is used when making an NFC payment
    }

    @Override
    public void onWalletDismissed() {
        // May un-select card if the wallet app has the concept of a 'default'
        // payment method
    }
}

אם HostApduService מתחיל לטפל בעסקת NFC וכתוצאה מכך, מתחיל בפעילות להצגת התקדמות ותוצאת התשלום, עליו לנסות גם לקבל הפניה ל- QuickAccessWalletService המחויב ולהתקשר ל- QuickAccessWalletService#sendEvent עם סוג אירוע של TYPE_NFC_PAYMENT_STARTED . זה גורם לביטול ממשק המשתמש של ארנק הגישה המהירה, ובכך מאפשר למשתמש לראות ללא הפרעה את פעילות התשלום.

לתיעוד נוסף על הטמעת QuickAccessWalletService , ראה QuickAccessWalletService ומבחן TestQuickAccessWalletService CTS.

הפעלת ממשק המשתמש של ארנק גישה מהירה באנדרואיד 11

כדי להגדיר את ארנק הגישה המהירה כך שיהיה זמין מתפריט ההפעלה ב-Android 11, כלול את יעד QuickAccessWallet ב-build והפעל את הפלאגין globalactions.wallet על ידי הוספת השורה המודגשת בדוגמת הקוד למטה ל- overlay/frameworks/base/packages/SystemUI/res/values/config.xml .

<resources>
    ...
    <!-- SystemUI Plugins that can be loaded on user builds. -->
    <string-array name="config_pluginWhitelist" translatable="false">
        <item>com.android.systemui</item>
        <item>com.android.systemui.plugin.globalactions.wallet</item>
    </string-array>
</resources>

ציין את אפליקציית התשלום של NFC המוגדרת כברירת מחדל בקובץ תצורת ההגדרות באמצעות def_nfc_payment_component .

אפליקציית התשלום NFC המוגדרת כברירת מחדל חייבת לחשוף QuickAccessWalletService כדי לספק כרטיסים לארנק הגישה המהירה. אם אפליקציית התשלום NFC המוגדרת כברירת מחדל אינה מייצאת שירות זה, ממשק המשתמש של הארנק מוסתר.

פרטי הטמעת QuickAccessWalletService

QuickAccessWalletService יש שלוש שיטות מופשטות שיש ליישם: onWalletCardsRequested , onWalletCardSelected ו- onWalletDismissed . תרשים הרצף שלהלן ממחיש רצף שיחות כאשר ארנק הגישה המהירה מוצג מיד לפני תשלום NFC.

דיאגרמת רצף של ארנק גישה מהירה

רצף שיחות לדוגמה כאשר מוצג ארנק גישה מהירה
איור 4. רצף שיחות לדוגמה כאשר מוצג ארנק גישה מהירה.

לא כל התצוגות של ארנק הגישה המהירה עוקבות אחרי תשלום NFC, אבל איור 4 למעלה ממחיש את כל היכולות של QuickAccessWalletService . בדוגמה זו, ספק כרטיס ארנק הגישה המהירה מיישם את האלמנטים המתוארים בכחול. ההנחה היא שכרטיסי תשלום מאוחסנים במכשיר במסד נתונים והגישה אליהם מתבצעת באמצעות ממשק בשם PaymentCardManager . ההנחה היא שפעילות שנקראת PaymentActivity מציגה את התוצאה של תשלום NFC. הזרימה מתנהלת באופן הבא:

  1. המשתמש מבצע מחווה כדי להעלות את ארנק הגישה המהירה.
  2. ממשק המשתמש של ארנק הגישה המהירה (חלק מממשק המשתמש של המערכת) בודק את מנהל החבילות כדי לראות אם אפליקציית התשלום של ברירת המחדל של NFC מייצאת את QuickAccessWalletService .

    • אם השירות לא מיוצא, ארנק הגישה המהירה לא יוצג.
  3. ממשק המשתמש של ארנק הגישה המהירה נקשר ל- QuickAccessWalletService וקורא onWalletCardsRequested . שיטה זו לוקחת אובייקט בקשה המכיל נתונים על מספר וגודל הכרטיסים שניתן לספק והתקשרות חוזרת. ניתן לקרוא להתקשרות חוזרת מתוך שרשור רקע.

  4. QuickAccessWalletService מחשב את הכרטיסים שהוא רוצה להציג, ואז קורא לשיטת onSuccess בהתקשרות חזרה שסופקה. מומלץ שהשירות יבצע את הפעולות הללו על שרשור רקע.

  5. ברגע שהכרטיסים מוצגים, ממשק המשתמש של המערכת מודיע ל- QuickAccessWalletService שהכרטיס הראשון נבחר על ידי קריאה onWalletCardSelected .

    • onWalletCardSelected נקרא בכל פעם שהמשתמש בוחר כרטיס חדש.
    • onWalletCardSelected עשוי להיקרא גם אם הכרטיס שנבחר כעת לא השתנה.
  6. כאשר המשתמש מבטל את ארנק הגישה המהירה, ממשק המשתמש של המערכת מודיע ל- QuickAccessWalletService על ידי קריאה ל- onWalletDismissed .

בדוגמה לעיל, המשתמש מביא את הטלפון לטווח של מסוף תשלום NFC בזמן שהארנק מוצג. מרכיב מרכזי בטיפול בתשלומי NFC הוא HostApduService , אשר חייב להיות מיושם לעיבוד APDUs המסופקים על ידי קורא ה-NFC (למידע נוסף, ראה אמולציית כרטיסים מבוססת מארח ). ההנחה היא שאפליקציית התשלום מתחילה פעילות להצגת ההתקדמות והתוצאה של האינטראקציה עם מסוף ה-NFC. עם זאת, ממשק המשתמש של ארנק הגישה המהירה מוצג על גבי חלון האפליקציה, כלומר פעילות התשלום מוסתרת על ידי ממשק המשתמש של ארנק הגישה המהירה. כדי לתקן זאת, על האפליקציה להודיע ​​לממשק המשתמש של המערכת שיש לסגור את ממשק המשתמש של ארנק הגישה המהירה. זה יכול לעשות זאת על ידי קבלת הפניה ל- QuickAccessWalletService המחובר וקריאה ל- sendWalletServiceEvent עם סוג האירוע TYPE_NFC_PAYMENT_STARTED .

יישום לדוגמה של QuickAccessWalletService

/** Sample implementation of {@link QuickAccessWalletService} */
@RequiresApi(VERSION_CODES.R)
public class MyQuickAccessWalletService extends QuickAccessWalletService {

  private static final String TAG = "QAWalletSvc";
  private ExecutorService executor;
  private PaymentCardManager paymentCardManager;

  @Override
  public void onCreate() {
    super.onCreate();
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      Log.w(TAG, "Should not run on pre-R devices");
      stopSelf();
      return;
    }
    executor = Executors.newSingleThreadExecutor();
    paymentCardManager = new PaymentCardManager();
  }

  @Override
  public void onDestroy() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.shutdownNow();
  }

  @Override
  public void onWalletCardsRequested(
      @NonNull GetWalletCardsRequest request, @NonNull GetWalletCardsCallback callback) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(
        () -> {
          List<PaymentCard> paymentCards = paymentCardManager.getCards();
          int maxCards = Math.min(paymentCards.size(), request.getMaxCards());
          List<WalletCard> walletCards = new ArrayList<>(maxCards);
          int selectedIndex = 0;
          int cardWidthPx = request.getCardWidthPx();
          int cardHeightPx = request.getCardHeightPx();
          for (int index = 0; index < maxCards; index++) {
            PaymentCard paymentCard = paymentCards.get(index);
            WalletCard walletCard =
                new WalletCard.Builder(
                        paymentCard.getCardId(),
                        paymentCard.getCardImage(cardWidthPx, cardHeightPx),
                        paymentCard.getContentDescription(),
                        paymentCard.getPendingIntent())
                    .build();
            walletCards.add(walletCard);
            if (paymentCard.isSelected()) {
              selectedIndex = index;
            }
          }
          GetWalletCardsResponse response =
              new GetWalletCardsResponse(walletCards, selectedIndex);
          callback.onSuccess(response);
        });
  }

  @Override
  public void onWalletCardSelected(@NonNull SelectWalletCardRequest request) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(
        () -> paymentCardManager.selectCardById(request.getCardId()));
  }

  @Override
  public void onWalletDismissed() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(() -> {
      paymentCardManager.removeCardOverrides();
    });
  }
}

לפרטים נוספים על QuickAccessWalletService , ראה התייחסות QuickAccessWalletService API .

הרשאות

רשומת המניפסט עבור QuickAccessWalletService חייבת לדרוש את ההרשאה android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE שהוצגה ב-Android 11. זוהי הרשאה ברמת החתימה המוחזקת על ידי ממשק המשתמש של המערכת, מה שאומר שרק תהליך ממשק המשתמש של המערכת יכול להיקשר להטמעות של QuickAccessWalletService . שים לב שאפליקציות נטענות בצד יכולות לדרוש הרשאה זו ולקבל גישה מלאה לנתוני QuickAccessWalletService במכשירים שבהם פועל Android 10 ומטה. כדי למנוע זאת, מומלץ שהשירות יבדוק את גרסת ה-build ב- onCreate ויפעיל את השירות רק במכשירים שבהם פועל אנדרואיד 11 ומעלה. לא נדרשות הרשאות אפליקציה אחרות מעבר לאלו הדרושות כדי לספק שירותי תשלום אמולציית כרטיס מארח.

אם אפליקציית התשלום NFC המוגדרת כברירת מחדל אינה מיישמת או מייצאת את QuickAccessWalletService , ממשק המשתמש של ארנק הגישה המהירה לא יוצג.

הגדרות באנדרואיד 12

כדי להפעיל או להשבית את ארנק הגישה המהירה ממסך הנעילה, משתמשים יכולים להשתמש בלחצן הצג ארנק בהגדרות > תצוגה > מסך נעילה . כדי להשבית את הארנק בצל, על המשתמשים לערוך אותו באופן ידני בצל ההגדרות המהירות.

החלף כדי להפעיל או להשבית את הארנק ממסך הנעילה

איור 5. הצג את בורר הארנק בדף מסך הנעילה בהגדרות.

הגדרות באנדרואיד 11

משתמשים יכולים לכבות את תכונת ארנק הגישה המהירה מאפליקציית ההגדרות. דף ההגדרות נמצא בהגדרות > מערכת > מחוות > כרטיסים וכרטיסים .

דף הגדרות כדי להפעיל או להשבית את תכונת ארנק הגישה המהירה
איור 6. דף הגדרות כדי להפעיל או להשבית את תכונת ארנק הגישה המהירה.

התאמה אישית

הוספת תצוגת ארנק גישה מהירה למיקום אחר בממשק המשתמש של המערכת

ממשק המשתמש של ארנק הגישה המהירה בנוי כתוסף מערכת . למרות שהטמעת AOSP עושה בו שימוש ב- GlobalActionsDialog (מוצג בלחיצה ארוכה), אתה יכול להעביר את התכונה מאחורי מחווה אחרת כל עוד אתה שומר על החוזה שצוין בממשק הפלאגין.

public interface GlobalActionsPanelPlugin extends Plugin {

  /** Invoked when the view is shown */
  PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);

  /** Callbacks for interacting with the view container */
  interface Callbacks {
    /** Dismisses the view */
    void dismissGlobalActionsMenu();

    /** Starts a PendingIntent, dismissing the keyguard if necessary. */
    void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
  }

  /** Provides the Quick Access Wallet view */
  interface PanelViewController {

    /** Returns the QuickAccessWallet view, which may take any size */
    View getPanelContent();

    /** Invoked when the view is dismissed */
    void onDismissed();

    /** Invoked when the device is either locked or unlocked. */
    void onDeviceLockStateChanged(boolean locked);
  }
}

ממשק המשתמש של ארנק הגישה המהירה מיישם GlobalActionsPanelPlugin ו- PanelViewController . GlobalActionsDialog מקבל מופע של תוסף הארנק באמצעות com.android.systemui.Dependency :

GlobalActionsPanelPlugin mPanelPlugin =
    Dependency.get(ExtensionController.class)
        .newExtension(GlobalActionsPanelPlugin.class)
        .withPlugin(GlobalActionsPanelPlugin.class)
        .build()
        .get();

לאחר בדיקה שהתוסף אינו ריק ושה- PanelViewController המוחזר על ידי onPanelShown אינו ריק, תיבת הדו-שיח מצרף את ה- View שסופק על-ידי getPanelContent ל- View משלו ומספקת התקשרות מתאימה לאירועי מערכת.

// Construct a Wallet PanelViewController.
// `this` implements GlobalActionsPanelPlugin.Callbacks
GlobalActionsPanelPlugin.PanelViewController mPanelController =
    mPanelPlugin.onPanelShown(this, !mKeyguardStateController.isUnlocked());

// Attach the view
FrameLayout panelContainer = findViewById(R.id.my_panel_container);
FrameLayout.LayoutParams panelParams =
    new FrameLayout.LayoutParams(
        FrameLayout.LayoutParams.MATCH_PARENT,
        FrameLayout.LayoutParams.MATCH_PARENT);
panelContainer.addView(mPanelController.getPanelContent(), panelParams);

// Respond to unlock events (if the view can be accessed while the phone is locked)
keyguardStateController.addCallback(new KeyguardStateController.Callback() {
  @Override
  public void onUnlockedChanged() {
    boolean unlocked = keyguardStateController.isUnlocked()
        || keyguardStateController.canDismissLockScreen();
    mPanelController.onDeviceLockStateChanged(unlocked);
  }
});

// Implement GlobalActionsPanelPlugin.Callbacks
@Override
public void dismissGlobalActionsMenu() {
  dismissDialog();
}
@Override
public void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent) {
  mActivityStarter.startPendingIntentDismissingKeyguard(pendingIntent);
}

// Notify the wallet when the container view is dismissed
mPanelController.onDismissed();

כדי להסיר את ארנק הגישה המהירה מתפריט ההפעלה, הסר את יעד QuickAccessWallet מבניית המערכת. כדי להסיר את ארנק הגישה המהירה מתפריט ההפעלה אך להוסיף אותו לתצוגה אחרת של ממשק המשתמש של המערכת, כלול את יעד הבנייה והסר הפניות ל- GlobalActionsPanelPlugin מ- GlobalActionsImpl .

הגדרת תצורות ברירת מחדל

אנדרואיד 12

באנדרואיד 12 ומעלה, ארנק הגישה המהירה תמיד גלוי בצל ההגדרות המהירות. הנראות של ארנק הגישה המהירה במסך הנעילה מסודרת על ידי ההגדרה המאובטחת הבאה: LOCKSCREEN_SHOW_WALLET . הגדרה זו קובעת אם סמל ארנק הגישה המהירה יוצג בפינה השמאלית התחתונה של מסך הנעילה. הגדרה זו מוגדרת כ- true כברירת מחדל, אך ניתן לבטל אותה על ידי המשתמש בהגדרות > תצוגה > מסך נעילה > הצג ארנק .

אנדרואיד 11

ב-Android 11, הנראות של ארנק גישה מהירה מסודרת על ידי שתי הגדרות מאובטחות: GLOBAL_ACTIONS_PANEL_ENABLED ו- GLOBAL_ACTIONS_PANEL_AVAILABLE . ההגדרה AVAILABLE קובעת אם ניתן להפעיל ולכבות את התכונה בהגדרות. הגדרה זו מוגדרת כ- true על ידי WalletPluginService . אם QuickAccessWallet אינו כלול ב-build, ההגדרה נשארת false . ההגדרה ENABLED מוגדרת כ- true כברירת מחדל באותו מקום, אך ניתן לבטל אותה על ידי המשתמש בהגדרות. כדי לשנות את התנהגות ברירת המחדל, שנה את WalletPluginService#enableFeatureInSettings .

מַתַן תוֹקֵף

כדי לאמת את היישום שלך של ארנק הגישה המהירה, הפעל CTS ובדיקות ידניות. שינויים בתוסף צריכים לממש גם את הבדיקות הרובולקטריות הכלולים.

בדיקות CTS

הפעל את בדיקות ה-CTS הממוקמות ב- cts/tests/quickaccesswallet .

בדיקות ידניות עבור אנדרואיד 12

בדיקת תכונות הליבה של ארנק הגישה המהירה דורשת מסוף תשלום NFC (אמיתי או מזויף) ואפליקציית תשלום NFC המיישמת QuickAccessWalletService (אפליקציית ארנק). תכונות הליבה שיש לבדוק כוללות: זמינות, מצב אפס, בחירת כרטיסים והתנהגות מסך נעילה.

זמינות

  • אם אפליקציית התשלום NFC המוגדרת כברירת מחדל אינה תומכת בתכונה, ארנק הגישה המהירה אינו נגיש לא בהגדרות המהירות ולא במסך הנעילה.
  • אם אפליקציית התשלום NFC המוגדרת כברירת מחדל תומכת בתכונה, ארנק הגישה המהירה נגיש בצל ההגדרות המהירות.
  • אם אפליקציית התשלום NFC המוגדרת כברירת מחדל תומכת בתכונה ואם ההגדרה LOCKSCREEN_SHOW_WALLET true , ארנק הגישה המהירה נגיש במסך הנעילה.
  • אם אפליקציית התשלום NFC המוגדרת כברירת מחדל תומכת בתכונה ואם ההגדרה LOCKSCREEN_SHOW_WALLET false , ארנק הגישה המהירה אינו נגיש במסך הנעילה.

מצב אפס

  • אם QuickAccessWalletService מופעל ומיוצא אך אינו מספק כרטיסים כלשהם, האריח ב-Shade מופיע כפי שמוצג בדוגמה באיור 7. לחיצה על האריח פותחת את אפליקציית התשלום NFC המוגדרת כברירת מחדל.

    אריח דוגמה בצל המציג את אפליקציית התשלום NFC המוגדרת כברירת מחדל

    איור 7. אריח דוגמה בגוון המציג את אפליקציית התשלום NFC המוגדרת כברירת מחדל.

  • לחיצה על תצוגת המצב הריקה כפי שמוצג באיור 8 פותחת את אפליקציית התשלום NFC המוגדרת כברירת מחדל. תצוגת מצב ריקה זו מוצגת רק כאשר למשתמש נותר כרטיס אחד בארנק, מסיר את הכרטיס מדף פרטי הכרטיס ולאחר מכן חוזר לתצוגת הארנק.

  • מסך הנעילה מציג את סמל הארנק.

תצוגת מצב ריקה בארנק הגישה המהירה

איור 8. תצוגת מצב ריק בממשק המשתמש של ארנק גישה מהירה.

מצב לא אפס

  • אם אפליקציית הארנק מספקת כרטיס אחד או יותר, האריח בגוון מופיע כפי שמוצג באיור 9.

    אריח לדוגמה בצל כאשר לאפליקציית הארנק יש כרטיס אחד או יותר

    איור 9. אריח לדוגמה בצל כאשר לאפליקציית הארנק יש כרטיס אחד או יותר.

  • לחיצה על האריח מציגה קרוסלת קלפים.

  • מסך הנעילה מציג כפתור שפותח את ארנק הגישה המהירה.

    ממשק המשתמש של ארנק גישה מהירה עם כרטיס מוצג

    איור 10. ממשק המשתמש של ארנק גישה מהירה עם כרטיס מוצג.

  • אם הכרטיס המוצג מייצג שיטת תשלום NFC, החזקת הטלפון למסוף תשלום NFC מביאה לשימוש באמצעי התשלום הזה ותצוגת הארנק נמחקת.

  • לחיצה על כרטיס המוצג פותחת את הפעילות המפורטת עבור אותו כרטיס.

  • אם מספר כרטיסים מסופקים על ידי QuickAccessWalletService , המשתמש יכול להחליק בין כרטיסים.

  • תפריט ההצפה מכיל ערך אחד: פתח את הגדרות מסך הנעילה כך שהמשתמש יוכל לשנות את אפשרות הצג ארנק .

בדיקות מצב נעילה

  • אם הטלפון נעול, הארנק נראה בצללית ההגדרות המהירות, עם תיאור של הוסף כרטיס אם לא קיים כרטיס באפליקציית התשלום המוגדרת כברירת מחדל, או ביטול נעילה כדי להשתמש בו אם קיימים כרטיסים באפליקציית התשלום המוגדרת כברירת מחדל.
  • אם הטלפון נעול, נראות הארנק במסך הנעילה נשלטת על ידי ההגדרה Secure.LOCKSCREEN_SHOW_WALLET , הנשלטת בהגדרות.
  • אם הטלפון נעול, LOCKSCREEN_SHOW_WALLET הוא false , ולא קיים כרטיס באפליקציית התשלום של ברירת המחדל של NFC, הארנק לא יוצג במסך הנעילה.
  • אם הטלפון נעול, LOCKSCREEN_SHOW_WALLET true , ולא קיים כרטיס באפליקציית התשלום של ברירת המחדל של NFC, הארנק לא יוצג במסך הנעילה.
  • אם הטלפון נעול, LOCKSCREEN_SHOW_WALLET true וכרטיסים קיימים באפליקציית התשלום NFC המוגדרת כברירת מחדל, הארנק מוצג על מסך הנעילה.
  • ביטול נעילת הטלפון בזמן שהארנק מוצג על מסך הנעילה מביא לבקשת הכרטיסים, מה שעלול לגרום לתוכן שונה של הכרטיס.

מבחני נגישות

  • משתמשי טוקבק יכולים לנווט בתצוגת הארנק על ידי החלקה שמאלה וימינה ועל ידי האזנה לתיאורי התוכן של הכרטיסים.
  • החלקה שמאלה וימינה כאשר Talkback מופעל בוחר כל כרטיס בתורו. משתמשי טוקבק יכולים לבחור ולהשתמש באמצעי תשלום NFC במסוף תשלום NFC.

בדיקות ידניות עבור אנדרואיד 11

בדיקת תכונות הליבה של ארנק הגישה המהירה דורשת מסוף תשלום NFC (אמיתי או מזויף) ואפליקציית תשלום NFC המיישמת QuickAccessWalletService (אפליקציית ארנק). תכונות הליבה שיש לבדוק כוללות זמינות, מצב אפס, בחירת כרטיסים והתנהגות מסך נעילה.

זמינות

  • אם ההגדרה GLOBAL_ACTIONS_PANEL_ENABLED true ואפליקציית התשלום של ברירת המחדל של NFC תומכת בתכונה, ארנק הגישה המהירה נגיש.
  • אם ההגדרה GLOBAL_ACTIONS_PANEL_ENABLED false ואפליקציית התשלום של ברירת המחדל של NFC תומכת בתכונה, ארנק הגישה המהירה אינו נגיש.
  • אם ההגדרה GLOBAL_ACTIONS_PANEL_ENABLED true ואפליקציית התשלום של ברירת המחדל של NFC אינה תומכת בתכונה, ארנק הגישה המהירה אינו נגיש.
  • אם ההגדרה GLOBAL_ACTIONS_PANEL_ENABLED false ואפליקציית התשלום של ברירת המחדל של NFC אינה תומכת בתכונה, ארנק הגישה המהירה אינו נגיש.

מצב אפס

  • אם QuickAccessWalletService מופעל ומיוצא אך אינו מספק כרטיסים, ממשק המשתמש של ארנק הגישה המהירה מציג את תצוגת המצב הריקה.
  • לחיצה על תצוגת המצב הריקה פותחת את אפליקציית הארנק.

    תצוגת מצב ריקה בממשק המשתמש של ארנק גישה מהירה
    איור 11. תצוגת מצב ריק בממשק המשתמש של ארנק גישה מהירה.

מצב לא אפס

  • אם אפליקציית הארנק מספקת כרטיס אחד או יותר, הכרטיסים מוצגים בממשק המשתמש של ארנק גישה מהירה.

    ממשק המשתמש של ארנק גישה מהירה עם כרטיס מוצג
    איור 12. ממשק המשתמש של ארנק גישה מהירה עם כרטיס מוצג.
  • אם הכרטיס המוצג מייצג שיטת תשלום NFC, החזקת הטלפון למסוף תשלום NFC מביאה לשימוש באמצעי התשלום הזה ותצוגת הארנק נמחקת.

  • לחיצה על כרטיס המוצג מבטלת את תצוגת הארנק ופותחת את הפעילות המפורטת עבור אותו כרטיס.

  • אם מספר כרטיסים מסופקים על ידי QuickAccessWalletService , המשתמש יכול להחליק בין כרטיסים.

  • תפריט ההצפה מכיל שני ערכים: אחד שפותח את אפליקציית הארנק ואחד שפותח את מסך Show cards & passs בהגדרות.

בדיקות מצב נעילה

  • אם הטלפון נעול, נראות הארנק נשלטת על ידי ההגדרה Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT , שניתן לשלוט בה בהגדרות.
  • אם הטלפון נעול ו- POWER_MENU_LOCK_SHOW_CONTENT false , הארנק לא יוצג.
  • אם הטלפון נעול ו- POWER_MENU_LOCK_SHOW_CONTENT true , הארנק מוצג.
  • ביטול נעילת הטלפון בזמן שהארנק מוצג במסך הנעילה מביא לשאילתה חוזרת של הכרטיסים, מה שעלול לגרום לתוכן שונה של הכרטיס.

מבחני נגישות

  • משתמשי TalkBack יכולים לנווט בתצוגת הארנק על ידי החלקה שמאלה וימינה ועל ידי האזנה לתיאורי התוכן של הכרטיסים.
  • החלקה שמאלה וימינה כאשר TalkBack מופעל בוחר כל כרטיס בתורו. משתמשי TalkBack יכולים לבחור ולהשתמש באמצעי תשלום NFC במסוף תשלום NFC.