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, כלומר המכשיר צריך לתמוך גם ב-אמולציה של כרטיסים מבוססי מארח (HCE) ב-NFC.

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

'Wallet עם גישה מהירה' כולל שני חלקים: ממשק המשתמש של Google Wallet לגישה מהירה וספק הכרטיסים של Google 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

כדי להגדיר ש-Quick Access 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 לגישה מהירה.

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

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

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

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

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

הגדרות ב-Android 12

כדי להפעיל או להשבית את 'Google Wallet לגישה מהירה' ממסך הנעילה, המשתמשים יכולים להשתמש במתג Show wallet ב-Settings (הגדרות) > Display > Lock screen. כדי להשבית את הארנק בהצללה, המשתמשים צריכים לערוך אותו באופן ידני בהצללה של ההגדרות המהירות.

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

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

הגדרות ב-Android 11

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

דף ההגדרות להפעלה או להשבתה של התכונה &#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();

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

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

זמינות

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

מצב אפס

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

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

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

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

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

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

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

מצב לא אפס

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

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

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

זמינות

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

מצב אפס

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

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

מצב שאינו אפס

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

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

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

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

  • תפריט ההתראות מכיל שתי רשומות: אחת שפותחת את אפליקציית 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.