محفظة الوصول السريع

تتوفّر ميزة Quick Access Wallet من Android 11، للمستخدمين الوصول إلى بطاقات الدفع والبطاقات ذات الصلة مباشرةً من قائمة زر التشغيل. استخدام كبير مثل تحديد طريقة الدفع المناسبة قبل إجراء إجراء معاملة في محطة الدفع بتقنية NFC والوصول سريعًا إلى الرحلات الجوية والبطاقات الأخرى للأحداث القادمة.

يمكن استخدام "محفظة الوصول السريع" في نظام التشغيل Android 12 أو الإصدارات الأحدث أخرى من الظل كما هو موضح في الشكل 1 والشكل 2.

ميزة "الوصول السريع" في "محفظة Google"
الشكل 1. ميزة "الوصول السريع" في "محفظة Google" (الجهاز مقفلاً)
ميزة "الوصول السريع" في "محفظة Google"
الشكل 2. "محفظة Google" للوصول السريع (فتح قفل الجهاز)

في نظام Android 11، تتوفر هذه الميزة من قائمة زر التشغيل كما هو موضح في الشكل 3.

ميزة "الوصول السريع" في "محفظة Google" في قائمة التشغيل
الشكل 3. ميزة "الوصول السريع" في "محفظة Google" القائمة.

المتطلبات

يجب أن تتوفّر تقنية NFC على جهازك لتتمكّن من استخدام "محفظة Google" للوصول السريع. الميزة يرتبط بـ QuickAccessWalletService في تطبيق الدفع التلقائي عبر NFC، ما يعني أنّه يجب أيضًا أن يكون الجهاز متوافقًا مع تقنية NFC محاكاة البطاقة المستندة إلى المضيف (HCE):

نظرة عامة على الميزات

هناك جزآن في "محفظة الوصول السريع": واجهة مستخدم "محفظة" ضمن ميزة "الوصول السريع" موفِّر بطاقة "محفظة Google" للوصول السريع

في الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، يتم تشغيل واجهة مستخدم "محفظة Google" في "النظام". واجهة المستخدم ويقع في frameworks/base/packages/SystemUI/src/com/android/systemui/wallet ضِمن Android 11، هو واجهة مستخدم "محفظة Google" التي تقع في platform/packages/apps/QuickAccessWallet, وأن يتم تثبيته وإدراجه في القائمة البيضاء.

إنّ موفِّر بطاقة "محفظة الوصول السريع" هو تطبيق الدفع التلقائي عبر NFC. يمكن للمستخدمين تثبيت العديد من تطبيقات الدفع عبر NFC في وقت واحد، ولكن التطبيق التلقائي فقط يمكن أن يعرض تطبيق الدفع عبر NFC البطاقات في قائمة زر التشغيل. يمكنك تحديد تقنية NFC يتم ضبط تطبيق الدفع على أنّه التطبيق التلقائي في البداية، ولكن يمكن للمستخدمين اختيار تطبيق في "الإعدادات". في حال تثبيت تطبيق واحد فقط للدفع عبر NFC، يصبح التطبيق الوضع الافتراضي تلقائيًا (انظر CardEmulationManager).

التنفيذ

لإتاحة البطاقات في واجهة مستخدم "محفظة Google" للوصول السريع، يجب الدفع عبر 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 يؤدي ذلك إلى تغيير إعدادات واجهة مستخدم "محفظة Google" للوصول السريع إزالتها، ما يتيح للمستخدم الاطّلاع بشكل واضح على نشاط الدفع.

للحصول على مستندات إضافية حول تنفيذ QuickAccessWalletService، يمكنك الاطّلاع على QuickAccessWalletService و TestQuickAccessWalletService اختبار CTS.

تفعيل واجهة مستخدم "محفظة Google" للوصول السريع إلى الإصدار 11 من نظام Android

لإعداد ميزة "محفظة الوصول السريع" لتكون متاحة من قائمة زر التشغيل في 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 لتقديم بطاقات إلى "محفظة Google" إذا كان تطبيق الدفع عبر NFC التلقائي لا تصدّر هذه الخدمة، لأنّ واجهة مستخدم المحفظة مخفية.

تفاصيل تنفيذ QuickAccessWalletService

تعتمد الدالة QuickAccessWalletService على ثلاث طرق مجردة يجب تنفيذها: onWalletCardsRequested وonWalletCardSelected وonWalletDismissed تشير رسالة الأشكال البيانية مخطط تسلسلي أدناه يوضح تسلسل مكالمة عندما يتم استخدام تطبيق "محفظة الوصول السريع" قبل الدفع مباشرةً باستخدام تقنية NFC.

الرسم البياني لتسلسل &quot;محفظة Google&quot; للوصول السريع

مثال على تسلسل المكالمات عند عرض &quot;محفظة الوصول السريع&quot;
الشكل 4. مثال على تسلسل المكالمات عندما يكون تطبيق "محفظة الوصول السريع" المعروضة

لا تتم إضافة عملية دفع باستخدام تقنية NFC على بعض مشاهدات "محفظة الوصول السريع"، ولكن يوضح الشكل 4 أعلاه جميع إمكانيات QuickAccessWalletService في هذا المثال، بطاقة محفظة الوصول السريع ينفذ موفّر الخدمة العناصر الموضحة باللون الأزرق. من المفترض أن تدفع يتم تخزين البطاقات على الجهاز في قاعدة بيانات ويتم الوصول إليها من خلال باسم PaymentCardManager. كما يُفترض أيضًا أن يكون النشاط الاسم "PaymentActivity" نتيجة عملية دفع عبر تقنية NFC. التدفق على النحو التالي:

  1. ينفّذ المستخدم إيماءة لإظهار "محفظة Google".
  2. واجهة مستخدم "محفظة الوصول السريع" (جزء من واجهة مستخدم النظام) تتحقّق من الحزمة مدير الشركاء لمعرفة ما إذا كان تطبيق الدفع التلقائي الذي يستخدم تقنية NFC يتم تصديره QuickAccessWalletService

    • إذا لم يتم تصدير الخدمة، لن يتم تصدير "محفظة الوصول السريع" المعروضة.
  3. ترتبط واجهة مستخدم "محفظة Google" بميزة "الوصول السريع" بـ "QuickAccessWalletService" يتصل بـ onWalletCardsRequested. تأخذ هذه الطريقة كائن طلب يحتوي على بيانات حول عدد البطاقات التي يمكن تقديمها وحجمها ومعاودة الاتصال. يمكن استدعاء رد الاتصال من سلسلة محادثات في الخلفية.

  4. يحسب QuickAccessWalletService البطاقات التي يريد عرضها، ثم يستدعي الطريقة onSuccess في رد الاتصال المقدم. من المهم ننصح بأن تنفّذ الخدمة هذه الإجراءات على سلسلة محادثات في الخلفية.

  5. فور عرض البطاقات، يتم إرسال إشعار من واجهة مستخدم النظام QuickAccessWalletService بأنّه تم اختيار البطاقة الأولى من خلال الاتصال onWalletCardSelected

    • يتم الاتصال بـ onWalletCardSelected في كل مرة يختار فيها المستخدم بطاقة جديدة.
    • قد يتم استدعاء onWalletCardSelected حتى إذا كان الوقت الحالي لم تتغير البطاقة المحددة.
  6. عندما يغلق المستخدم "محفظة الوصول السريع"، ترسل واجهة مستخدم النظام إشعارًا QuickAccessWalletService من خلال الاتصال بالرقم onWalletDismissed.

في المثال أعلاه، عندما يستخدم المستخدم الهاتف للدفع من خلال تقنية NFC، محطة دفع أثناء عرض المحفظة. عنصر رئيسي في التعامل مع NFC تبلغ قيمة الدفعات HostApduService، ويجب تنفيذها لمعالجة متوسطات الأرباح لكل مستخدم يدفع رسومًا (APDU). الذي يوفره قارئ NFC (لمزيد من المعلومات، راجع محاكاة البطاقات المستندة إلى المضيف). من المفترض أن يبدأ تطبيق الدفع نشاطًا لعرض مستوى التقدم نتيجة التفاعل مع الوحدة الطرفية NFC. ومع ذلك، فإن واجهة برمجة التطبيقات Quick Access يتم عرض واجهة مستخدم المحفظة أعلى نافذة التطبيق، مما يعني أن تخفي واجهة مستخدم المحفظة "الوصول السريع" نشاط الدفع. لتصحيح هذا الأمر، يجب يجب أن يعلم التطبيق واجهة مستخدم النظام بأنّه يجب ضبط واجهة مستخدم "محفظة 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 في الإصدار 11 من نظام التشغيل Android هذا إذن على مستوى التوقيع. بواسطة واجهة مستخدم النظام، مما يعني أنه يمكن لعملية واجهة مستخدم النظام فقط الارتباط بعمليات تنفيذ QuickAccessWalletService يُرجى العلم أنّ التطبيقات المثبّتة من مصدر غير معروف قد تطالب بملكية هذا المحتوى إذن والوصول بشكل كامل إلى بيانات "QuickAccessWalletService" على الأجهزة يعمل بنظام التشغيل Android 10 أو الإصدارات الأقدم. لمنع حدوث ذلك، ننصحك بأن تكون الخدمة التحقّق من إصدار الإصدار في onCreate وتفعيل الخدمة على الأجهزة فقط يعمل بنظام التشغيل Android 11 أو إصدار أحدث. لا توجد أذونات تطبيقات أخرى غير تلك اللازمة لتوفير خيار الدفع مقابل محاكاة البطاقة المضيفة

في حال تعذّر تنفيذ تطبيق الدفع التلقائي عبر NFC أو تصديره QuickAccessWalletService، لا يتم عرض واجهة مستخدم المحفظة ذات الوصول السريع.

الإعدادات في Android 12

لتفعيل "محفظة الوصول السريع" أو إيقافها من شاشة القفل، يمكن للمستخدمين استخدام مفتاح التبديل إظهار المحفظة في الإعدادات > الشاشة > شاشة القفل: لإيقاف المحفظة في مركز المساعدة، على المستخدمين تعديل المحفظة يدويًا. في مركز الإعدادات السريعة.

تفعيل المحفظة أو إيقافها من شاشة القفل

الشكل 5. عرض مفتاح تبديل المحفظة في صفحة شاشة القفل في "الإعدادات"

الإعدادات في نظام التشغيل Android 11

يمكن للمستخدمين إيقاف ميزة "محفظة Google" للوصول السريع من تطبيق "الإعدادات". تشير رسالة الأشكال البيانية صفحة الإعدادات في الإعدادات > النظام > الإيماءات > البطاقات البطاقات.

صفحة &quot;الإعدادات&quot; لتفعيل ميزة &quot;محفظة Google&quot; أو إيقافها
الشكل 6. صفحة الإعدادات لتمكين أو تعطيل "محفظة Google" ضمن "الوصول السريع"

التخصيص

إضافة عرض "محفظة Google" للوصول السريع إلى موقع جغرافي آخر في واجهة مستخدم النظام

تشير رسالة الأشكال البيانية واجهة مستخدم "محفظة Google" للوصول السريع تم تصميمه باعتباره المكوّن الإضافي للنظام. وعلى الرغم من أن تنفيذ 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);
  }
}

تشير رسالة الأشكال البيانية واجهة مستخدم "محفظة Google" للوصول السريع لتنفيذ 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();

لإزالة "محفظة الوصول السريع" من قائمة زر التشغيل، احذف هدف "QuickAccessWallet" من إصدار النظام. لإزالة قائمة "الوصول السريع" يمكنك محفظة Google من قائمة زر التشغيل، ولكن بإضافتها إلى طريقة عرض مختلفة من واجهة مستخدم النظام، تضمين هدف الإصدار وإزالة الإشارات إلى GlobalActionsPanelPlugin من GlobalActionsImpl

ضبط الإعدادات التلقائية

Android 12

في نظام التشغيل Android 12 أو الإصدارات الأحدث، يتم استخدام "محفظة الوصول السريع" مرئية دائمًا في مركز الإعدادات السريعة. إذن الوصول السريع يكون الإعداد الآمن التالي مضبوطًا على "محفظة Google" على شاشة القفل: LOCKSCREEN_SHOW_WALLET يتحكّم هذا الإعداد في ما إذا كانت "محفظة الوصول السريع" يظهر الرمز في أسفل يسار شاشة القفل. تم ضبط هذا الإعداد على true تلقائيًا، ولكن يمكن للمستخدم إيقافها من خلال الإعدادات > الشاشة > شاشة القفل > عرض المحفظة

Android 11

في Android 11، يقتصر إذن الوصول إلى "محفظة Google" على إعدادَين آمنَين: "GLOBAL_ACTIONS_PANEL_ENABLED" وGLOBAL_ACTIONS_PANEL_AVAILABLE" تشير رسالة الأشكال البيانية يتحكّم إعداد "AVAILABLE" في إمكانية تفعيل الميزة وإيقافها في الإعدادات. تم ضبط هذا الإعداد على true من قِبل WalletPluginService إذا لم يكن QuickAccessWallet مضمَّنًا في الإصدار، سيبقى الإعداد. false يتم تلقائيًا ضبط الإعداد ENABLED في المكان نفسه على true. ولكن يمكن للمستخدم إيقافها من خلال "الإعدادات". لتغيير السلوك الافتراضي، تعديل WalletPluginService#enableFeatureInSettings.

التحقُّق

للتحقّق من تنفيذ "محفظة Google" للوصول السريع، شغِّل CTS وانقر على الاختبار. ينبغي أيضًا أن تؤدي التغييرات التي تطرأ على المكون الإضافي إلى الاختبارات المسجَّلة

اختبارات CTS

قم بتشغيل اختبارات CTS الموجودة في cts/tests/quickaccesswallet

الاختبارات اليدوية لنظام التشغيل Android 12

يتطلب اختبار الميزات الأساسية في "محفظة الوصول السريع" الدفع باستخدام تقنية NFC. محطة دفع (حقيقية أو مزيّفة) وتطبيق للدفع عبر NFC ينفّذ "QuickAccessWalletService" (تطبيق المحفظة) الميزات الأساسية التي يجب اختبارها تشمل ما يلي: مدى التوفّر والحالة الصفرية واختيار البطاقة وسلوك شاشة القفل.

مدى التوفّر

  • إذا كانت هذه الميزة لا تتوفر في تطبيق الدفع عبر NFC التلقائي، لا يمكن الوصول إلى "محفظة Google" من خلال الإعدادات السريعة أو القفل الشاشة.
  • إذا كان تطبيق الدفع عبر NFC التلقائي متوافقًا مع هذه الميزة، يمكنك استخدام ميزة "الوصول السريع" ويمكن الوصول إلى "محفظة Google" في مركز الإعدادات السريعة.
  • إذا كان تطبيق الدفع التلقائي عبر NFC يتيح هذه الميزة وما إذا كانت تم ضبط إعدادات "LOCKSCREEN_SHOW_WALLET" على "true"، و"محفظة الوصول السريع" هي على شاشة القفل.
  • إذا كان تطبيق الدفع التلقائي عبر NFC يتيح هذه الميزة وما إذا كانت الإعداد "LOCKSCREEN_SHOW_WALLET" هو "false"، لكنّ "محفظة الوصول السريع" غير متاح. على شاشة القفل.

الحالة الصفرية

  • في حال تفعيل QuickAccessWalletService وتصديره، ولكن لا يتم تفعيله تقديم أي بطاقات، سيظهر المربع في "الظل" كما هو موضح في مثال في الشكل 7. يؤدي النقر على المربّع إلى فتح تطبيق الدفع التلقائي عبر NFC.

    مثال على مربّع في الظل يعرض التطبيق التلقائي للدفع عبر NFC

    الشكل 7. مثال على مربّع في الظل يعرض التطبيق التلقائي للدفع عبر NFC.

  • يؤدي النقر على عرض الحالة الفارغ كما هو موضح في الشكل 8 إلى فتح هو التطبيق التلقائي للدفع عبر NFC. لا يتم عرض طريقة عرض الحالة الفارغة إلا عندما لدى المستخدم بطاقة واحدة متبقية في المحفظة، وتتم إزالة البطاقة من تفاصيل البطاقة ثم تعود إلى عرض المحفظة.

  • تعرض شاشة القفل رمز "محفظة Google".

عرض حالة فارغ في محفظة الوصول السريع

الشكل 8. عرض حالة فارغ في واجهة مستخدم "محفظة Google" في ميزة "الوصول السريع"

حالة غير صفرية

  • إذا كان تطبيق "محفظة Google" يوفّر بطاقة واحدة أو أكثر، سيظهر مربّع في الظل كما هو موضح في الشكل 9.

    مثال على مربّع في الظل عندما يحتوي تطبيق المحفظة على بطاقة واحدة أو أكثر

    الشكل 9. مثال على مربّع في الظل عندما يحتوي تطبيق "محفظة Google" على بطاقة واحدة أو أكثر

  • يؤدي النقر على المربّع إلى ظهور لوحة عرض دوّارة للبطاقات.

  • تعرض شاشة القفل زرًا يفتح "محفظة الوصول السريع".

    واجهة مستخدم &quot;محفظة Google&quot; للوصول السريع مع بطاقة معروضة

    الشكل 10. واجهة مستخدم "محفظة Google" للوصول السريع تظهر فيها بطاقة

  • إذا كانت البطاقة المعروضة تمثّل طريقة دفع عبر 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 استخدام هذه الميزة، ويمكن الوصول إلى "محفظة Google" بسهولة.
  • إذا كان الإعداد GLOBAL_ACTIONS_PANEL_ENABLED هو false وهو الإعداد التلقائي يتوافق تطبيق الدفع عبر NFC مع هذه الميزة، ولا إليه على الفور.
  • إذا كان الإعداد GLOBAL_ACTIONS_PANEL_ENABLED هو true وهو الإعداد التلقائي لا يتيح تطبيق الدفع عبر NFC استخدام الميزة، "محفظة الوصول السريع" لا يمكن الوصول إليه.
  • إذا كان الإعداد GLOBAL_ACTIONS_PANEL_ENABLED هو false وهو الإعداد التلقائي لا يتيح تطبيق الدفع عبر NFC استخدام الميزة، "محفظة الوصول السريع" لا يمكن الوصول إليه.

الحالة الصفرية

  • في حال تفعيل QuickAccessWalletService وتصديره، ولكن لا يتم تفعيله تقديم أي بطاقات، تعرض واجهة مستخدم المحفظة في Quick Access عرض الحالة الفارغ.
  • يؤدي النقر على عرض الحالة الفارغ إلى فتح تطبيق "محفظة Google".

    عرض حالة فارغ في واجهة مستخدم &quot;محفظة Google&quot; في ميزة &quot;الوصول السريع&quot;
    الشكل 11. عرض حالة فارغ في قائمة "الوصول السريع" واجهة مستخدم "محفظة Google"

حالة غير صفرية

  • إذا كان تطبيق "محفظة Google" يوفّر بطاقة واحدة أو أكثر، ستظهر لك البطاقات. في واجهة مستخدم "محفظة" ضمن "الوصول السريع"

    واجهة مستخدم &quot;محفظة Google&quot; للوصول السريع مع بطاقة معروضة
    الشكل 12 واجهة مستخدم "محفظة Google" ذات الوصول السريع مع بطاقة المعروضة
  • إذا كانت البطاقة المعروضة تمثّل طريقة دفع عبر 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 واستخدامها عند الدفع عبر تقنية NFC. الطرفية.