Wallet לגישה מהירה

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

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

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

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

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

דרישות

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

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

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

ב-Android מגרסה 12 ואילך, ממשק המשתמש של Wallet פועל ב-SystemUI וממוקם ב-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

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

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

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

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

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

  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 ואילך. לא נדרשות הרשאות שניתנות לאפליקציה אחרות, מלבד ההרשאות שנדרשות כדי לספק שירותי תשלום של Host Card Emulation.

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

הגדרות ב-Android 12

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

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

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

הגדרות ב-Android 11

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

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

מצב אפס

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

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

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

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

  • במסך הנעילה מוצג סמל של ארנק.

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

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

מצב שאינו אפס

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

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

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

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

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

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

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

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

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

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

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

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

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

מצב אפס

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

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

מצב שאינו אפס

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

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