Wallet עם גישה מהירה

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

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

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

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

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

הדרישות

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

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

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

ב-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 ובדיקה של TestQuickAccessWalletService ב-CTS.

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

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

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

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

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

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

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

  5. ברגע שהכרטיסים מוצגים, ממשק המשתמש של המערכת מודיע ל-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. זוהי הרשאה ברמת החתימה שנמצאת בידי System UI, כלומר רק תהליך System UI יכול לקשר להטמעות של QuickAccessWalletService. חשוב לדעת שאפליקציות שהותקנו באופן צדדי יכולות לדרוש את ההרשאה הזו ולקבל גישה מלאה לנתוני QuickAccessWalletService במכשירים עם Android מגרסה 10 ואילך. כדי למנוע זאת, מומלץ לבדוק את גרסת ה-build ב-onCreate ולהפעיל את השירות רק במכשירים עם Android מגרסה 11 ואילך. לא נדרשות הרשאות נוספות לאפליקציה, מלבד אלה שנדרשות כדי לספק שירותי תשלום של אמולציה של כרטיס מארח.

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

הגדרות ב-Android 12

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

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

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

הגדרות ב-Android 11

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

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

התאמה אישית

הוספת תצוגת 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();

אחרי בדיקה שהתוסף הוא לא null ושה-PanelViewController שמוחזר על ידי onPanelShown הוא לא null, תיבת הדו-שיח מצרפת את ה-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 מהתפריט 'הפעלה' אבל להוסיף אותו לתצוגה אחרת שסופקו על ידי ממשק המשתמש של המערכת, צריך לכלול את יעד ה-build ולהסיר את ההפניות ל-GlobalActionsPanelPlugin מ-GlobalActionsImpl.

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

12 ‏Android

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

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

מצב אפס

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

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

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

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

  • סמל Wallet מופיע במסך הנעילה.

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

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

מצב שאינו אפס

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

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

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

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

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

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

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

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

מצב אפס

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

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

מצב שאינו אפס

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

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

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

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

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

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

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

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

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