התכונה 'ארנק גישה מהירה', שזמינה בגרסה Android 11 ואילך, מאפשרת למשתמש לגשת לכרטיסי תשלום ולכרטיסים רלוונטיים אחרים ישירות מתפריט ההפעלה. תרחישים לדוגמה כוללים בחירת אמצעי התשלום המתאים לפני ביצוע עסקה במסוף NFC, וגישה מהירה לטיסות ולכרטיסים אחרים לאירועים קרובים.
ב-Android מגרסה 12 ואילך, התכונה 'גישה מהירה ל-Wallet' זמינה מהצללית, כפי שמוצג בתמונה 1 ובתמונה 2.
ב-Android 11, התכונה זמינה בתפריט ההפעלה, כפי שמוצג באיור 3.
הדרישות
כדי להשתמש בתכונה 'גישה מהירה ל-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 לגישה מהירה מובאות לתשלום באמצעות NFC, אבל באיור 4 למעלה מפורטות כל היכולות של QuickAccessWalletService
. בדוגמה הזו, ספק הכרטיסים של Wallet עם גישה מהירה מיישם את הרכיבים שבכחול. ההנחה היא שכרטיסי תשלום נשמרים במכשיר במסד נתונים, והגישה אליהם מתבצעת דרך ממשק בשם PaymentCardManager
. בנוסף, ההנחה היא שפעילות שנקראת PaymentActivity
מציגה את התוצאה של תשלום באמצעות NFC. התהליך מתבצע באופן הבא:
- המשתמש מבצע תנועה כדי לפתוח את Wallet עם גישה מהירה.
ממשק המשתמש של ארנק הגישה המהירה (חלק מממשק המשתמש של המערכת) בודק את מנהל החבילות כדי לראות אם אפליקציית התשלומים שמוגדרת כברירת מחדל ל-NFC מייצאת את
QuickAccessWalletService
.- אם לא מייצאים את השירות, האפשרות'Wallet לגישה מהירה' לא תוצג.
ממשק המשתמש של Wallet לגישה מהירה מתחבר ל-
QuickAccessWalletService
ומפעיל אתonWalletCardsRequested
. השיטה הזו משתמשת באובייקט בקשה שמכיל נתונים לגבי המספר והגודל של הכרטיסים שאפשר לספק וקריאה חוזרת (callback). אפשר להפעיל את הפונקציה החוזרת משרשור ברקע.QuickAccessWalletService
מחשב את הכרטיסים שהוא רוצה להציג, ואז קורא ל-methodonSuccess
ב-callback שסופק. מומלץ שהשירות יבצע את הפעולות האלה בשרשור ברקע.ברגע שהכרטיסים מוצגים, ממשק המשתמש של המערכת מודיע ל-
QuickAccessWalletService
שהכרטיס הראשון נבחר, באמצעות קריאה ל-onWalletCardSelected
.- הפונקציה
onWalletCardSelected
נקראת בכל פעם שהמשתמש בוחר כרטיס חדש. - יכול להיות ש-
onWalletCardSelected
יקרא גם אם הכרטיס שנבחר כרגע לא השתנה.
- הפונקציה
כשהמשתמש סוגר את 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
המשתמשים יכולים להשבית את התכונה 'גישה מהירה' באפליקציית ההגדרות. דף ההגדרות נמצא בקטע הגדרות > מערכת > תנועות > כרטיסים ושוברים.
התאמה אישית
הוספת תצוגת 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.איור 7. דוגמה לכרטיס בצללית שבו מוצגת אפליקציית התשלומים המוגדר כברירת מחדל ל-NFC.
לחיצה על תצוגת המצב הריקה כפי שמוצג באיור 8 תפתח את אפליקציית ברירת המחדל לתשלומים באמצעות NFC. תצוגת המצב הריקה מוצגת רק כשלמשתמש יש כרטיס אחד בארנק, מסירה את הכרטיס מדף פרטי הכרטיס וחוזרת לתצוגת הארנק.
סמל Wallet מופיע במסך הנעילה.
איור 8. תצוגה של מצב ריק בממשק המשתמש של Wallet לגישה מהירה.
מצב לא אפס
אם באפליקציית הארנק יש כרטיס אחד או יותר, המשבצת בגוון כהה מופיעה כפי שמוצג באיור 9.
איור 9. דוגמה לכרטיס בצל כאשר באפליקציית 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 לגישה מהירה.
אם הכרטיס שמוצג מייצג אמצעי תשלום מסוג 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.