تتيح ميزة "محفظة الوصول السريع"، المتوفّرة على نظام التشغيل Android 11 والإصدارات الأحدث، للمستخدم الوصول إلى بطاقات الدفع والتذاكر ذات الصلة مباشرةً من قائمة زر التشغيل. تشمل حالات الاستخدام الرئيسية اختيار طريقة الدفع المناسبة قبل إجراء معاملة في جهاز يعمل بتقنية الاتصال قريب المدى (NFC) والوصول بسرعة إلى الرحلات الجوية وبطاقات أخرى للأحداث القادمة.
في نظام التشغيل Android 12 أو الإصدارات الأحدث، تتوفّر ميزة "محفظة الوصول السريع" من لوحة الإشعارات كما هو موضّح في الشكل 1 والشكل 2.
![]() |
![]() |
في Android 11، تتوفّر الميزة من قائمة زر التشغيل كما هو موضّح في الشكل 3.

المتطلبات
يجب أن يتضمّن جهازك تقنية NFC لاستخدام ميزة "الوصول السريع إلى محفظة Google". ترتبط هذه الميزة QuickAccessWalletService
بتطبيق الدفع التلقائي باستخدام NFC، ما يعني أنّه يجب أن يتيح الجهاز أيضًا محاكاة البطاقة المُضيفة (HCE) باستخدام NFC.
نظرة عامة على الميزة
يتضمّن تطبيق "محفظة Google للوصول السريع" جزأين: واجهة المستخدم الخاصة بالتطبيق ومزوّد بطاقة "محفظة Google للوصول السريع".
في الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، تعمل واجهة مستخدم "محفظة Google" في System UI وتقع في frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
. في نظام التشغيل Android 11، يجب تثبيت واجهة مستخدم "محفظة Google" وإدراجها في القائمة البيضاء، وهي متوفّرة في platform/packages/apps/QuickAccessWallet
.
مزوّد بطاقة "محفظة الوصول السريع" هو تطبيق الدفع التلقائي باستخدام NFC. يمكن للمستخدمين تثبيت عدة تطبيقات للدفع باستخدام NFC في الوقت نفسه، ولكن يمكن لتطبيق الدفع التلقائي باستخدام NFC فقط عرض البطاقات في قائمة التشغيل. يمكنك تحديد تطبيق الدفع عبر NFC الذي تم ضبطه تلقائيًا في البداية، ولكن يمكن للمستخدمين اختيار تطبيق مختلف في "الإعدادات". إذا تم تثبيت تطبيق واحد فقط للدفع باستخدام NFC، سيصبح التطبيق تلقائيًا هو التطبيق التلقائي (راجِع CardEmulationManager
).
التنفيذ
لتوفير البطاقات لواجهة مستخدم "محفظة الوصول السريع"، يجب أن تنفّذ تطبيقات الدفع عبر 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
. سيؤدي ذلك إلى إغلاق واجهة مستخدم "محفظة الوصول السريع"، ما يتيح للمستخدم الاطّلاع على نشاط الدفع بدون عوائق.
للحصول على مستندات إضافية حول تنفيذ QuickAccessWalletService
، يُرجى الاطّلاع على
QuickAccessWalletService
وTestQuickAccessWalletService
في اختبار CTS.
تفعيل واجهة مستخدم "الوصول السريع إلى محفظة Google" في نظام التشغيل Android 11
لضبط إعدادات "محفظة الوصول السريع" لتكون متاحة من قائمة التشغيل في نظام التشغيل Android 11، أدرِج هدف QuickAccessWallet
في الإصدار وفعِّل المكوّن الإضافي 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 مباشرةً.

لا تؤدي كل المشاهدات في "محفظة الوصول السريع" إلى عملية دفع باستخدام NFC، ولكن يوضّح الشكل 4 أعلاه جميع إمكانات QuickAccessWalletService
. في هذا المثال، يوفّر مقدّم خدمة بطاقة "محفظة الوصول السريع" العناصر الموضّحة باللون الأزرق. من المفترض أن يتم تخزين بطاقات الدفع على الجهاز في قاعدة بيانات، وأن يتم الوصول إليها من خلال واجهة باسم PaymentCardManager
. ويُفترض أيضًا أنّ نشاطًا
يُسمى PaymentActivity
يعرض نتيجة عملية الدفع عبر NFC. تتم العملية على النحو التالي:
- ينفّذ المستخدم إيماءة لفتح "محفظة Google" في وضع "الوصول السريع".
تتحقّق واجهة مستخدم "المحفظة للوصول السريع" (وهي جزء من واجهة مستخدم النظام) من "مدير الحِزم" لمعرفة ما إذا كان تطبيق الدفع التلقائي عبر NFC يصدّر
QuickAccessWalletService
.- إذا لم يتم تصدير الخدمة، لن يتم عرض "محفظة الوصول السريع".
ترتبط واجهة مستخدم "الوصول السريع إلى المحفظة" بالرمز
QuickAccessWalletService
وتطلب الرمزonWalletCardsRequested
. تتلقّى هذه الطريقة عنصر طلب يحتوي على بيانات حول عدد البطاقات وحجمها اللذين يمكن توفيرهما ودالة ردّ الاتصال. يمكن استدعاء دالة معاودة الاتصال من سلسلة محادثات في الخلفية.تحسب
QuickAccessWalletService
البطاقات التي تريد عرضها، ثم تستدعي الطريقةonSuccess
في رد الاتصال المقدَّم. يُنصح بأن تنفّذ الخدمة هذه الإجراءات في سلسلة محادثات في الخلفية.فور عرض البطاقات، يرسل System UI إشعارًا إلى
QuickAccessWalletService
بأنّه تم اختيار البطاقة الأولى من خلال استدعاءonWalletCardSelected
.- يتم طلب
onWalletCardSelected
في كل مرة يختار فيها المستخدم بطاقة جديدة. - قد يتم استدعاء
onWalletCardSelected
حتى إذا لم تتغيّر البطاقة المحدّدة حاليًا.
- يتم طلب
عندما يرفض المستخدم الوصول السريع إلى "محفظة Google"، ستُعلم واجهة مستخدم النظام
QuickAccessWalletService
من خلال استدعاءonWalletDismissed
.
في المثال أعلاه، يقرّب المستخدم الهاتف من جهاز دفع مزوّد بتقنية NFC أثناء عرض المحفظة. HostApduService
هو أحد المكوّنات الأساسية للتعامل مع عمليات الدفع باستخدام NFC، ويجب تنفيذه لمعالجة وحدات بيانات بروتوكول التطبيق (APDU) التي يقدّمها قارئ NFC (لمزيد من المعلومات، راجِع محاكاة البطاقة المستندة إلى الجهاز المضيف).
من المفترض أن يبدأ تطبيق الدفع نشاطًا لعرض تقدّم التفاعل مع جهاز NFC ونتيجته. ومع ذلك، تظهر واجهة مستخدم "محفظة الوصول السريع" فوق نافذة التطبيق، ما يعني أنّ نشاط الدفع يكون مخفيًا بسبب واجهة مستخدم "محفظة الوصول السريع". لحلّ هذه المشكلة، يجب أن يرسل التطبيق إشعارًا إلى واجهة مستخدم النظام بأنّه يجب إغلاق واجهة مستخدم "محفظة Google" في ميزة "الوصول السريع". ويمكنها إجراء ذلك من خلال الحصول على مرجع إلى 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
، يُرجى الاطّلاع على
مرجع واجهة برمجة التطبيقات QuickAccessWalletService
.
الأذونات
يجب أن يتطلّب إدخال البيان الخاص بـ QuickAccessWalletService
الإذن android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
الذي تم تقديمه في Android 11. هذا إذن على مستوى التوقيع يملكه تطبيق System UI، ما يعني أنّه لا يمكن إلا لعملية System UI الربط بتنفيذات QuickAccessWalletService
. يُرجى العِلم أنّ التطبيقات التي يتم تحميلها جانبًا يمكنها طلب هذا الإذن والحصول على إذن وصول كامل إلى بيانات QuickAccessWalletService
على الأجهزة التي تعمل بالإصدار 10 من نظام التشغيل Android أو الإصدارات الأقدم. ولتجنُّب ذلك، ننصح بأن تتحقّق الخدمة من إصدار البنية في onCreate
وأن تفعِّل الخدمة فقط على الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android والإصدارات الأحدث. ولا يُشترط الحصول على أي أذونات أخرى للتطبيق
إلى جانب الأذونات اللازمة لتقديم خدمات الدفع باستخدام محاكاة البطاقة المضيفة.
إذا كان تطبيق الدفع التلقائي عبر NFC لا ينفّذ أو يصدّر
QuickAccessWalletService
، لن يتم عرض واجهة مستخدم "محفظة الوصول السريع".
الإعدادات في Android 12
لتفعيل ميزة "محفظة الوصول السريع" أو إيقافها من شاشة القفل، يمكن للمستخدمين استخدام زر التبديل عرض المحفظة في الإعدادات > الشاشة > شاشة القفل. لإيقاف المحفظة في اللوحة، على المستخدمين تعديلها يدويًا في لوحة الإعدادات السريعة.
الشكل 5. عرض زر التبديل الخاص بالمحفظة في صفحة "شاشة القفل" ضمن "الإعدادات"
الإعدادات في Android 11
يمكن للمستخدمين إيقاف ميزة "محفظة الوصول السريع" من تطبيق "الإعدادات". يمكن العثور على صفحة الإعدادات في الإعدادات > النظام > الإيماءات > البطاقات والتذاكر.

التخصيص
إضافة طريقة عرض "الوصول السريع إلى المحفظة" إلى موقع آخر في واجهة مستخدم النظام
تم تصميم
واجهة مستخدم "الوصول السريع إلى المحفظة"
على شكل
مكوّن إضافي للنظام.
على الرغم من أنّ تنفيذ 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);
}
}
تتضمّن واجهة مستخدم "الوصول السريع إلى المحفظة" الرمزين GlobalActionsPanelPlugin
وPanelViewController
.
يحصل GlobalActionsDialog
على مثيل للمكوّن الإضافي للمحفظة باستخدام 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();
لإزالة "محفظة Google" من قائمة زر التشغيل، احذف الهدف QuickAccessWallet
من إصدار النظام. لإزالة "محفظة الوصول السريع" من قائمة زر التشغيل وإضافتها إلى طريقة عرض مختلفة توفّرها واجهة مستخدم النظام، عليك تضمين هدف الإصدار وإزالة الإشارات إلى GlobalActionsPanelPlugin
من GlobalActionsImpl
.
ضبط الإعدادات التلقائية
Android 12
في نظام التشغيل Android 12 أو الإصدارات الأحدث، تظهر ميزة "الوصول السريع إلى محفظة Google" دائمًا في قائمة "الإعدادات السريعة". يتم التحكّم في إمكانية ظهور "محفظة Google" في شاشة القفل من خلال إعداد الأمان التالي:
LOCKSCREEN_SHOW_WALLET
. يتحكّم هذا الإعداد في ما إذا كان سيتم عرض رمز "محفظة الوصول السريع" في أسفل يسار شاشة القفل. يكون هذا الإعداد مفعّلاً
true
تلقائيًا، ولكن يمكن للمستخدم إيقافه من خلال الانتقال إلى الإعدادات >
الشاشة > شاشة القفل > عرض المحفظة.
Android 11
في نظام التشغيل Android 11، يتم التحكّم في إمكانية ظهور "محفظة الوصول السريع" من خلال إعدادَي أمان:
GLOBAL_ACTIONS_PANEL_ENABLED
وGLOBAL_ACTIONS_PANEL_AVAILABLE
. يتحكّم الإعداد
AVAILABLE
في ما إذا كان يمكن تفعيل الميزة أو إيقافها في
الإعدادات. يتم ضبط هذا الإعداد على true
بواسطة
WalletPluginService
.
إذا لم يتم تضمين QuickAccessWallet
في الإصدار، سيظل الإعداد false
. يتم ضبط الإعداد ENABLED
على true
تلقائيًا في المكان نفسه،
ولكن يمكن للمستخدم إيقافه في "الإعدادات". لتغيير السلوك التلقائي، عدِّل WalletPluginService#enableFeatureInSettings
.
التحقُّق
للتحقّق من صحة تنفيذ ميزة "الوصول السريع إلى المحفظة"، شغِّل اختبارات CTS والاختبارات اليدوية. يجب أن تتضمّن التغييرات التي يتم إجراؤها على المكوّن الإضافي أيضًا اختبارات Robolectric.
اختبارات مجموعة أدوات اختبار التوافق (CTS)
نفِّذ اختبارات CTS المتوفّرة في
cts/tests/quickaccesswallet
.
الاختبارات اليدوية لنظام التشغيل Android 12
يتطلّب اختبار الميزات الأساسية في "محفظة الوصول السريع" توفُّر جهاز دفع بتقنية NFC (حقيقي أو وهمي) وتطبيق دفع بتقنية NFC يتضمّن QuickAccessWalletService
(تطبيق المحفظة). تشمل الميزات الأساسية التي يجب اختبارها ما يلي: التوفّر، وحالة عدم توفّر بيانات، واختيار البطاقة، وسلوك شاشة القفل.
مدى التوفّر
- إذا كان تطبيق الدفع التلقائي عبر تقنية NFC لا يتيح استخدام هذه الميزة، لن يكون بإمكانك الوصول إلى "محفظة الوصول السريع" من خلال الإعدادات السريعة أو شاشة القفل.
- إذا كان تطبيق الدفع التلقائي عبر NFC يتيح استخدام هذه الميزة، يمكن الوصول إلى "المحفظة" في "الإعدادات السريعة" من خلال قائمة الإعدادات السريعة.
- إذا كان تطبيق الدفع التلقائي عبر NFC يتيح هذه الميزة وكان خيار
LOCKSCREEN_SHOW_WALLET
مضبوطًا علىtrue
، يمكن الوصول إلى ميزة "الوصول السريع إلى محفظة Google" على شاشة القفل. - إذا كان تطبيق الدفع التلقائي عبر تقنية NFC يتيح استخدام الميزة وكان الإعداد
LOCKSCREEN_SHOW_WALLET
false
، لن يكون تطبيق "محفظة الوصول السريع" متاحًا على شاشة القفل.
الحالة الصفرية
في حال تفعيل
QuickAccessWalletService
وتصديره ولكنّه لا يوفّر أي بطاقات، سيظهر المربّع في "اللوحة" كما هو موضّح في المثال في الشكل 7. يؤدي النقر على المربّع إلى فتح تطبيق الدفع التلقائي باستخدام تقنية NFC.الشكل 7. مثال على مربّع في اللوحة المنسدلة يعرض تطبيق الدفع التلقائي باستخدام NFC
يؤدي النقر على عرض الحالة الفارغة كما هو موضّح في الشكل 8 إلى فتح تطبيق الدفع التلقائي عبر NFC. ولا يظهر عرض الحالة الفارغة هذا إلا عندما يتبقى لدى المستخدم بطاقة واحدة في المحفظة، ثم يزيلها من صفحة تفاصيل البطاقة، ثم يعود إلى عرض المحفظة.
تعرض شاشة القفل رمز المحفظة.
الشكل 8. عرض الحالة الفارغة في واجهة مستخدم "الوصول السريع إلى محفظة Google"
حالة غير صفرية
إذا كان تطبيق المحفظة يوفّر بطاقة واحدة أو أكثر، سيظهر المربّع في قائمة الإشعارات المنسدلة كما هو موضّح في الشكل 9.
الشكل 9. مثال على المربّع في لوحة الإشعارات عندما يتضمّن تطبيق "المحفظة" بطاقة واحدة أو أكثر
يؤدي النقر على المربّع إلى عرض لوحة دوّارة للبطاقات.
تعرض شاشة القفل زرًا يفتح "محفظة Google" في وضع "الوصول السريع".
الشكل 10. واجهة مستخدم "الوصول السريع إلى المحفظة" مع عرض بطاقة
إذا كانت البطاقة المعروضة تمثّل طريقة دفع عبر NFC، سيؤدي تثبيت الهاتف أمام محطة دفع مزوّدة بتقنية NFC إلى استخدام طريقة الدفع هذه وإغلاق عرض المحفظة.
يؤدي النقر على بطاقة معروضة إلى فتح النشاط التفصيلي لتلك البطاقة.
إذا قدّمت
QuickAccessWalletService
بطاقات متعددة، يمكن للمستخدم التمرير سريعًا بين البطاقات.تحتوي القائمة الكاملة على إدخال واحد: فتح إعدادات شاشة القفل ليتمكّن المستخدم من تغيير الخيار عرض المحفظة.
اختبارات حالة القفل
- إذا كان الهاتف مقفلاً، تظهر المحفظة في قائمة الإعدادات السريعة، مع وصف إضافة بطاقة إذا لم تكن هناك بطاقة في تطبيق الدفع التلقائي، أو فتح القفل لاستخدامها إذا كانت هناك بطاقات في تطبيق الدفع التلقائي.
- إذا كان الهاتف مقفلاً، يتم التحكّم في إمكانية ظهور المحفظة على شاشة القفل من خلال الإعداد
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
يتطلّب اختبار الميزات الأساسية في "محفظة الوصول السريع" توفُّر جهاز دفع بتقنية NFC (حقيقي أو وهمي) وتطبيق دفع بتقنية NFC يتضمّن QuickAccessWalletService
(تطبيق المحفظة). تشمل الميزات الأساسية التي يجب اختبارها
مدى التوفّر، وحالة عدم توفّر بيانات، واختيار البطاقة، وسلوك شاشة القفل.
مدى التوفّر
- إذا كان إعداد
GLOBAL_ACTIONS_PANEL_ENABLED
هوtrue
وكان تطبيق الدفع التلقائي عبر NFC يتيح استخدام الميزة، يمكن الوصول إلى "محفظة الوصول السريع". - إذا كان إعداد
GLOBAL_ACTIONS_PANEL_ENABLED
مضبوطًا علىfalse
وكان تطبيق الدفع التلقائي عبر NFC يتيح استخدام الميزة، لن يكون تطبيق "محفظة الوصول السريع" متاحًا. - إذا كان إعداد
GLOBAL_ACTIONS_PANEL_ENABLED
مضبوطًا علىtrue
وكان تطبيق الدفع التلقائي عبر NFC لا يتيح استخدام الميزة، لا يمكن الوصول إلى "المحفظة للوصول السريع". - إذا كان إعداد
GLOBAL_ACTIONS_PANEL_ENABLED
مضبوطًا علىfalse
وكان تطبيق الدفع التلقائي عبر NFC لا يتيح استخدام الميزة، لا يمكن الوصول إلى "المحفظة للوصول السريع".
الحالة الصفرية
- في حال تفعيل
QuickAccessWalletService
وتصديره ولكنّه لا يوفّر أي بطاقات، ستعرض واجهة مستخدم "الوصول السريع إلى محفظة Google" عرض الحالة الفارغة. يؤدي النقر على عرض الحالة الفارغة إلى فتح تطبيق "محفظة Google".
الشكل 11. عرض الحالة الفارغة في واجهة المستخدم الخاصة بميزة "الوصول السريع إلى محفظة Google"
حالة غير صفرية
إذا كان تطبيق المحفظة يوفّر بطاقة واحدة أو أكثر، سيتم عرض البطاقات في واجهة مستخدم "محفظة الوصول السريع".
الشكل 12. واجهة مستخدم "الوصول السريع إلى المحفظة" مع عرض بطاقة إذا كانت البطاقة المعروضة تمثّل طريقة دفع عبر NFC، سيؤدي تثبيت الهاتف أمام محطة دفع مزوّدة بتقنية NFC إلى استخدام طريقة الدفع هذه وإغلاق عرض المحفظة.
يؤدي النقر على بطاقة معروضة إلى إغلاق عرض المحفظة وفتح النشاط التفصيلي لتلك البطاقة.
إذا قدّمت
QuickAccessWalletService
بطاقات متعددة، يمكن للمستخدم التمرير سريعًا بين البطاقات.تحتوي قائمة الخيارات الإضافية على خيارَين: أحدهما يفتح تطبيق "المحفظة" والآخر يفتح شاشة عرض البطاقات والتذاكر في "الإعدادات".
اختبارات حالة القفل
- إذا كان الهاتف مقفلاً، يتم التحكّم في إمكانية ظهور المحفظة من خلال إعداد
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
، ويمكن التحكّم فيه من خلال "الإعدادات". - إذا كان الهاتف مقفلاً وكانت ميزة
POWER_MENU_LOCK_SHOW_CONTENT
false
، لن يتم عرض المحفظة. - إذا كان الهاتف مقفلاً وكانت ميزة
POWER_MENU_LOCK_SHOW_CONTENT
true
، سيتم عرض المحفظة. - عند فتح قفل الهاتف أثناء عرض المحفظة على شاشة القفل، تتم إعادة طلب البطاقات، ما قد يؤدي إلى ظهور محتوى مختلف للبطاقات.
اختبارات تسهيل الاستخدام
- يمكن لمستخدمي TalkBack التنقّل في عرض المحفظة من خلال التمرير سريعًا لليسار واليمين والاستماع إلى أوصاف المحتوى في البطاقات.
- يؤدي التمرير سريعًا إلى اليمين واليسار مع تفعيل TalkBack إلى اختيار كل بطاقة بالتسلسل. يمكن لمستخدمي TalkBack اختيار طريقة دفع باستخدام NFC واستخدامها في محطة دفع تتيح هذه التقنية.