Wallet לגישה מהירה

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

ב-Android בגרסה 12 ומעלה, התכונה 'גישה מהירה לארנק' זמינה ממרכז הבקרה, כמו שמוצג באיור 1 ובאיור 2.

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

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

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

דרישות

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

סקירה כללית של התכונות

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

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

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

הטמעה

כדי לספק כרטיסים לממשק המשתמש של Wallet לגישה מהירה, אפליקציות לתשלום ב-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. כך ממשק המשתמש של הגישה המהירה ל-Wallet נסגר, והמשתמש יכול לראות את פעילות התשלומים בלי הפרעות.

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

הפעלת ממשק משתמש של גישה מהירה ל-Wallet ב-Android 11

כדי להגדיר את הגישה המהירה ל-Wallet כך שתהיה זמינה מתפריט ההפעלה ב-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.

תרשים רצף של גישה מהירה ל-Wallet

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

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

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

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

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

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

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

בדוגמה שלמעלה, המשתמש מקרב את הטלפון לטווח של מסוף תשלום ב-NFC בזמן שהארנק מוצג. רכיב מרכזי בטיפול בתשלומים ב-NFC הוא HostApduService, שצריך להטמיע כדי לעבד APDU שסופקו על ידי קורא ה-NFC (מידע נוסף זמין במאמר בנושא אמולציית כרטיסים מבוססת-מארח). ההנחה היא שאפליקציית התשלום מתחילה פעילות כדי להציג את ההתקדמות ואת התוצאה של האינטראקציה עם מסוף ה-NFC. עם זאת, ממשק המשתמש של הגישה המהירה ל-Wallet מוצג מעל חלון האפליקציה, כלומר פעילות התשלום מוסתרת על ידי ממשק המשתמש של הגישה המהירה ל-Wallet. כדי לתקן את זה, האפליקציה צריכה לשלוח התראה לממשק המשתמש של המערכת על כך שצריך לסגור את ממשק המשתמש של Wallet לגישה מהירה. היא יכולה לעשות זאת על ידי קבלת הפניה ל-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 זמינים בהפניית ה-API של QuickAccessWalletService.

הרשאות

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

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

הגדרות ב-Android 12

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

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

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

הגדרות ב-Android 11

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

דף ההגדרות שבו אפשר להפעיל או להשבית את התכונה &#39;גישה מהירה ל-Wallet&#39;
איור 6. דף ההגדרות שבו אפשר להפעיל או להשבית את התכונה
גישה מהירה אל Wallet.

התאמה אישית

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

ממשק המשתמש של הגישה המהירה לארנק בנוי כפלאגין מערכת. למרות שההטמעה של 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);
  }
}

ממשק המשתמש של הגישה המהירה ל-Wallet מטמיע את GlobalActionsPanelPlugin ואת PanelViewController. ‫GlobalActionsDialog מקבל מופע של תוסף Wallet באמצעות ‫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();

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

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

12 ‏Android

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

Android 11

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

אימות

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

בדיקות CTS

מריצים את בדיקות ה-CTS שנמצאות בכתובת cts/tests/quickaccesswallet.

בדיקות ידניות ל-Android 12

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

זמינות

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

מצב אפס

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

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

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

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

  • במסך הנעילה מופיע סמל הארנק.

תצוגה של מצב ריק בגישה המהירה ל-Wallet

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

מצב שאינו אפס

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

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

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

  • לחיצה על המשבצת מציגה קרוסלה של כרטיסים.

  • במסך הנעילה מוצג לחצן שפותח את הגישה המהירה ל-Wallet.

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

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

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

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

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

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

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

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

בדיקות נגישות

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

בדיקות ידניות ל-Android 11

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

זמינות

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

מצב אפס

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

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

מצב שאינו אפס

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

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

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

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

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

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

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

בדיקות נגישות

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