त्वरित पहुँच वॉलेट

एंड्रॉइड 11 से उपलब्ध क्विक एक्सेस वॉलेट सुविधा, उपयोगकर्ता को सीधे पावर मेनू से भुगतान कार्ड और प्रासंगिक पास तक पहुंचने की अनुमति देती है। प्रमुख उपयोग के मामलों में एनएफसी टर्मिनल पर लेनदेन करने से पहले उचित भुगतान विधि का चयन करना और आगामी घटनाओं के लिए उड़ानों और अन्य पासों तक त्वरित पहुंच शामिल है।

एंड्रॉइड 12 या उच्चतर में, क्विक एक्सेस वॉलेट सुविधा शेड से उपलब्ध है जैसा कि चित्र 1 और चित्र 2 में दिखाया गया है।

शेड में क्विक एक्सेस वॉलेट सुविधा
चित्र 1. त्वरित एक्सेस वॉलेट सुविधा (डिवाइस लॉक)।
शेड में क्विक एक्सेस वॉलेट सुविधा
चित्र 2. त्वरित एक्सेस वॉलेट सुविधा (डिवाइस अनलॉक)।

एंड्रॉइड 11 में, यह सुविधा पावर मेनू से उपलब्ध है जैसा चित्र 3 में दिखाया गया है।

पावर मेनू में क्विक एक्सेस वॉलेट सुविधा
चित्र 3. पावर मेनू में त्वरित एक्सेस वॉलेट सुविधा।

आवश्यकताएं

क्विक एक्सेस वॉलेट सुविधा का उपयोग करने के लिए आपके डिवाइस में एनएफसी होना चाहिए। यह सुविधा डिफ़ॉल्ट NFC भुगतान ऐप के QuickAccessWalletService से जुड़ती है, जिसका अर्थ है कि डिवाइस को NFC होस्ट-आधारित कार्ड इम्यूलेशन (HCE) का भी समर्थन करना चाहिए।

फ़ीचर सिंहावलोकन

क्विक एक्सेस वॉलेट के दो भाग हैं: क्विक एक्सेस वॉलेट यूआई और क्विक एक्सेस वॉलेट कार्ड प्रदाता।

एंड्रॉइड 12 या उच्चतर में, वॉलेट यूआई सिस्टम यूआई में चलता है और frameworks/base/packages/SystemUI/src/com/android/systemui/wallet में स्थित है। एंड्रॉइड 11 में, वॉलेट यूआई, जो platform/packages/apps/QuickAccessWallet में स्थित है, को इंस्टॉल और श्वेतसूचीबद्ध किया जाना चाहिए।

क्विक एक्सेस वॉलेट कार्ड प्रदाता डिफ़ॉल्ट एनएफसी भुगतान ऐप है। उपयोगकर्ता एक साथ कई एनएफसी भुगतान ऐप इंस्टॉल कर सकते हैं, लेकिन केवल डिफ़ॉल्ट एनएफसी भुगतान ऐप ही पावर मेनू पर कार्ड दिखा सकता है। आप निर्दिष्ट कर सकते हैं कि प्रारंभ में कौन सा एनएफसी भुगतान ऐप डिफ़ॉल्ट के रूप में सेट है, लेकिन उपयोगकर्ता सेटिंग्स में एक अलग ऐप का चयन कर सकते हैं। यदि केवल एक NFC भुगतान ऐप इंस्टॉल किया गया है, तो यह स्वचालित रूप से डिफ़ॉल्ट बन जाता है ( CardEmulationManager देखें)।

कार्यान्वयन

क्विक एक्सेस वॉलेट यूआई को कार्ड प्रदान करने के लिए, एनएफसी भुगतान ऐप्स को 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 का संदर्भ प्राप्त करने का भी प्रयास करना चाहिए और TYPE_NFC_PAYMENT_STARTED के इवेंट प्रकार के साथ QuickAccessWalletService#sendEvent कॉल करना चाहिए। . इसके कारण क्विक एक्सेस वॉलेट यूआई खारिज हो जाता है, जिससे उपयोगकर्ता को भुगतान गतिविधि का अबाधित दृश्य देखने को मिलता है।

QuickAccessWalletService लागू करने पर अतिरिक्त दस्तावेज़ के लिए, QuickAccessWalletService और TestQuickAccessWalletService CTS परीक्षण देखें।

एंड्रॉइड 11 में क्विक एक्सेस वॉलेट यूआई सक्षम करना

एंड्रॉइड 11 में पावर मेनू से उपलब्ध होने के लिए क्विक एक्सेस वॉलेट को कॉन्फ़िगर करने के लिए, बिल्ड में QuickAccessWallet लक्ष्य को शामिल करें और overlay/frameworks/base/packages/SystemUI/res/values/config.xml के नीचे कोड नमूने में बोल्ड लाइन जोड़कर 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>

def_nfc_payment_component का उपयोग करके सेटिंग कॉन्फ़िगरेशन फ़ाइल में डिफ़ॉल्ट NFC भुगतान ऐप निर्दिष्ट करें।

क्विक एक्सेस वॉलेट को कार्ड प्रदान करने के लिए डिफ़ॉल्ट एनएफसी भुगतान ऐप को QuickAccessWalletService उजागर करना होगा। यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप इस सेवा को निर्यात नहीं करता है, तो वॉलेट यूआई छिपा हुआ है।

QuickAccessWalletService कार्यान्वयन विवरण

QuickAccessWalletService में तीन अमूर्त विधियाँ हैं जिन्हें लागू किया जाना चाहिए: onWalletCardsRequested , onWalletCardSelected , और onWalletDismissed । नीचे दिया गया अनुक्रम आरेख एक कॉल अनुक्रम को दर्शाता है जब क्विक एक्सेस वॉलेट को एनएफसी भुगतान से ठीक पहले देखा जाता है।

त्वरित एक्सेस वॉलेट अनुक्रम आरेख

क्विक एक्सेस वॉलेट देखे जाने पर उदाहरण कॉल अनुक्रम
चित्र 4. क्विक एक्सेस वॉलेट देखे जाने पर उदाहरण कॉल अनुक्रम।

क्विक एक्सेस वॉलेट के सभी दृश्यों के बाद एनएफसी भुगतान नहीं किया जाता है, लेकिन ऊपर चित्र 4 QuickAccessWalletService की सभी क्षमताओं को दर्शाता है। इस उदाहरण में, क्विक एक्सेस वॉलेट कार्ड प्रदाता नीले रंग में उल्लिखित तत्वों को लागू करता है। यह माना जाता है कि भुगतान कार्ड डिवाइस पर डेटाबेस में संग्रहीत होते हैं और PaymentCardManager नामक इंटरफ़ेस के माध्यम से एक्सेस किए जाते हैं। आगे यह माना जाता है कि PaymentActivity नामक गतिविधि एनएफसी भुगतान का परिणाम प्रदर्शित करती है। प्रवाह इस प्रकार आगे बढ़ता है:

  1. उपयोगकर्ता क्विक एक्सेस वॉलेट को लाने के लिए एक इशारा करता है।
  2. क्विक एक्सेस वॉलेट यूआई (सिस्टम यूआई का हिस्सा) यह देखने के लिए पैकेज मैनेजर की जांच करता है कि क्या डिफ़ॉल्ट एनएफसी भुगतान ऐप QuickAccessWalletService निर्यात करता है।

    • यदि सेवा निर्यात नहीं की जाती है, तो क्विक एक्सेस वॉलेट प्रदर्शित नहीं होता है।
  3. क्विक एक्सेस वॉलेट यूआई QuickAccessWalletService से जुड़ता है और onWalletCardsRequested पर कॉल करता है। यह विधि एक अनुरोध ऑब्जेक्ट लेती है जिसमें प्रदान किए जा सकने वाले कार्डों की संख्या और आकार और कॉलबैक के बारे में डेटा होता है। कॉलबैक को बैकग्राउंड थ्रेड से कॉल किया जा सकता है।

  4. QuickAccessWalletService उन कार्डों की गणना करता है जिन्हें वह दिखाना चाहता है, फिर दिए गए कॉलबैक पर onSuccess विधि को कॉल करता है। यह अनुशंसा की जाती है कि सेवा इन क्रियाओं को पृष्ठभूमि थ्रेड पर निष्पादित करे।

  5. जैसे ही कार्ड प्रदर्शित होते हैं, सिस्टम यूआई QuickAccessWalletService सूचित करता है कि onWalletCardSelected पर कॉल करके पहला कार्ड चुना गया है।

    • जब भी उपयोगकर्ता नया कार्ड चुनता है तो onWalletCardSelected कॉल किया जाता है।
    • onWalletCardSelected कॉल किया जा सकता है, भले ही वर्तमान में चयनित कार्ड नहीं बदला गया हो।
  6. जब उपयोगकर्ता क्विक एक्सेस वॉलेट को खारिज कर देता है, तो सिस्टम यूआई onWalletDismissed पर कॉल करके QuickAccessWalletService सूचित करता है।

उपरोक्त उदाहरण में, वॉलेट प्रदर्शित होने के दौरान उपयोगकर्ता फोन को एनएफसी भुगतान टर्मिनल की सीमा में लाता है। NFC भुगतानों को संभालने का एक प्रमुख घटक HostApduService है, जिसे NFC रीडर द्वारा प्रदान किए गए APDU को संसाधित करने के लिए लागू किया जाना चाहिए (अधिक जानकारी के लिए, होस्ट-आधारित कार्ड इम्यूलेशन देखें)। यह माना जाता है कि भुगतान ऐप एनएफसी टर्मिनल के साथ बातचीत की प्रगति और परिणाम प्रदर्शित करने के लिए एक गतिविधि शुरू करता है। हालाँकि, क्विक एक्सेस वॉलेट यूआई ऐप विंडो के शीर्ष पर प्रदर्शित होता है, जिसका अर्थ है कि भुगतान गतिविधि क्विक एक्सेस वॉलेट यूआई द्वारा अस्पष्ट है। इसे सुधारने के लिए, ऐप को सिस्टम यूआई को सूचित करना होगा कि क्विक एक्सेस वॉलेट यूआई को खारिज कर दिया जाना चाहिए। यह बाउंड QuickAccessWalletService का संदर्भ प्राप्त करके और इवेंट प्रकार TYPE_NFC_PAYMENT_STARTED के साथ sendWalletServiceEvent कॉल करके ऐसा कर सकता है।

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 API संदर्भ देखें।

अनुमतियां

QuickAccessWalletService के लिए मेनिफेस्ट प्रविष्टि के लिए Android 11 में पेश की गई android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE अनुमति की आवश्यकता होनी चाहिए। यह सिस्टम UI द्वारा रखी गई एक हस्ताक्षर-स्तरीय अनुमति है, जिसका अर्थ है कि केवल सिस्टम UI प्रक्रिया ही QuickAccessWalletService के कार्यान्वयन से जुड़ सकती है। ध्यान रखें कि साइड-लोडेड ऐप्स इस अनुमति का दावा कर सकते हैं और एंड्रॉइड 10 या उससे पहले वाले डिवाइस पर QuickAccessWalletService डेटा तक पूर्ण पहुंच प्राप्त कर सकते हैं। इसे रोकने के लिए, यह अनुशंसा की जाती है कि सेवा onCreate में बिल्ड संस्करण की जाँच करे और सेवा को केवल Android 11 और उच्चतर चलाने वाले उपकरणों पर सक्षम करे। होस्ट कार्ड इम्यूलेशन भुगतान सेवाएँ प्रदान करने के लिए आवश्यक अनुमतियों के अलावा किसी अन्य ऐप अनुमति की आवश्यकता नहीं है।

यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप QuickAccessWalletService लागू या निर्यात नहीं करता है, तो क्विक एक्सेस वॉलेट यूआई प्रदर्शित नहीं होता है।

एंड्रॉइड 12 में सेटिंग्स

लॉक स्क्रीन से क्विक एक्सेस वॉलेट को सक्षम या अक्षम करने के लिए, उपयोगकर्ता सेटिंग्स > डिस्प्ले > लॉक स्क्रीन में शो वॉलेट टॉगल का उपयोग कर सकते हैं। वॉलेट को शेड में अक्षम करने के लिए, उपयोगकर्ताओं को इसे त्वरित सेटिंग्स शेड में मैन्युअल रूप से संपादित करना होगा।

लॉक स्क्रीन से वॉलेट को सक्षम या अक्षम करने के लिए टॉगल करें

चित्र 5. सेटिंग्स में लॉक स्क्रीन पेज में वॉलेट टॉगल दिखाएं।

एंड्रॉइड 11 में सेटिंग्स

उपयोगकर्ता सेटिंग्स ऐप से क्विक एक्सेस वॉलेट सुविधा को बंद कर सकते हैं। सेटिंग पृष्ठ सेटिंग्स > सिस्टम > जेस्चर > कार्ड और पास में पाया जाता है।

क्विक एक्सेस वॉलेट सुविधा को सक्षम या अक्षम करने के लिए सेटिंग्स पृष्ठ
चित्र 6. क्विक एक्सेस वॉलेट सुविधा को सक्षम या अक्षम करने के लिए सेटिंग्स पृष्ठ।

अनुकूलन

सिस्टम यूआई में किसी अन्य स्थान पर त्वरित एक्सेस वॉलेट दृश्य जोड़ना

क्विक एक्सेस वॉलेट यूआई को एक सिस्टम प्लगइन के रूप में बनाया गया है। हालाँकि 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();

यह जांचने के बाद कि प्लगइन गैर-शून्य है और onPanelShown द्वारा लौटाया गया PanelViewController गैर-शून्य है, संवाद getPanelContent द्वारा प्रदान किए गए View अपने स्वयं के 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 लक्ष्य को हटा दें। पावर मेनू से क्विक एक्सेस वॉलेट को हटाने के लिए लेकिन इसे एक अलग सिस्टम यूआई प्रदान किए गए दृश्य में जोड़ने के लिए, बिल्ड लक्ष्य शामिल करें और GlobalActionsImpl से GlobalActionsPanelPlugin के संदर्भ हटा दें।

डिफ़ॉल्ट कॉन्फ़िगरेशन सेट करना

एंड्रॉइड 12

एंड्रॉइड 12 या उच्चतर में, क्विक एक्सेस वॉलेट हमेशा क्विक सेटिंग्स शेड में दिखाई देता है। लॉक स्क्रीन में क्विक एक्सेस वॉलेट की दृश्यता निम्नलिखित सुरक्षित सेटिंग द्वारा निर्धारित की जाती है: LOCKSCREEN_SHOW_WALLET । यह सेटिंग नियंत्रित करती है कि लॉक स्क्रीन के नीचे दाईं ओर क्विक एक्सेस वॉलेट आइकन दिखाया गया है या नहीं। यह सेटिंग डिफ़ॉल्ट रूप से true पर सेट है, लेकिन उपयोगकर्ता द्वारा सेटिंग्स > डिस्प्ले > लॉक स्क्रीन > वॉलेट दिखाएं में इसे बंद किया जा सकता है।

एंड्रॉइड 11

एंड्रॉइड 11 में, क्विक एक्सेस वॉलेट दृश्यता दो सुरक्षित सेटिंग्स द्वारा गेट की गई है: GLOBAL_ACTIONS_PANEL_ENABLED और GLOBAL_ACTIONS_PANEL_AVAILABLEAVAILABLE सेटिंग नियंत्रित करती है कि सेटिंग में सुविधा को चालू और बंद किया जा सकता है या नहीं। यह सेटिंग WalletPluginService द्वारा true पर सेट की गई है। यदि QuickAccessWallet बिल्ड में शामिल नहीं किया गया है, तो सेटिंग false बनी रहेगी। ENABLED सेटिंग उसी स्थान पर डिफ़ॉल्ट रूप से true पर सेट है, लेकिन सेटिंग्स में उपयोगकर्ता द्वारा इसे बंद किया जा सकता है। डिफ़ॉल्ट व्यवहार को बदलने के लिए, WalletPluginService#enableFeatureInSettings को संशोधित करें।

मान्यकरण

क्विक एक्सेस वॉलेट के अपने कार्यान्वयन को सत्यापित करने के लिए, सीटीएस और मैन्युअल परीक्षण चलाएं। प्लगइन में परिवर्तन में शामिल रोबोइलेक्ट्रिक परीक्षणों का भी उपयोग किया जाना चाहिए।

सीटीएस परीक्षण

cts/tests/quickaccesswallet पर स्थित CTS परीक्षण चलाएँ।

Android 12 के लिए मैन्युअल परीक्षण

क्विक एक्सेस वॉलेट की मुख्य विशेषताओं का परीक्षण करने के लिए एक NFC भुगतान टर्मिनल (असली या नकली) और एक NFC भुगतान ऐप की आवश्यकता होती है जो QuickAccessWalletService (वॉलेट ऐप) लागू करता है। जिन मुख्य विशेषताओं का परीक्षण किया जाना चाहिए उनमें शामिल हैं: उपलब्धता, शून्य स्थिति, कार्ड चयन और लॉक स्क्रीन व्यवहार।

उपलब्धता

  • यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप सुविधा का समर्थन नहीं करता है, तो क्विक एक्सेस वॉलेट न तो त्वरित सेटिंग्स और न ही लॉक स्क्रीन में पहुंच योग्य नहीं है।
  • यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप सुविधा का समर्थन करता है, तो क्विक एक्सेस वॉलेट त्वरित सेटिंग्स शेड में पहुंच योग्य है।
  • यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप सुविधा का समर्थन करता है और यदि LOCKSCREEN_SHOW_WALLET सेटिंग true है, तो क्विक एक्सेस वॉलेट लॉक स्क्रीन पर पहुंच योग्य है।
  • यदि डिफ़ॉल्ट एनएफसी भुगतान ऐप सुविधा का समर्थन करता है और यदि LOCKSCREEN_SHOW_WALLET सेटिंग false है, तो लॉक स्क्रीन पर क्विक एक्सेस वॉलेट पहुंच योग्य नहीं है।

शून्य अवस्था

  • यदि QuickAccessWalletService सक्षम और निर्यात किया गया है लेकिन कोई कार्ड प्रदान नहीं करता है, तो शेड में टाइल चित्र 7 में उदाहरण के अनुसार दिखाई देती है। टाइल पर क्लिक करने से डिफ़ॉल्ट NFC भुगतान ऐप खुल जाता है।

    शेड में उदाहरण टाइल जो डिफ़ॉल्ट एनएफसी भुगतान ऐप दिखा रही है

    चित्र 7. डिफ़ॉल्ट एनएफसी भुगतान ऐप दिखाने वाले शेड में उदाहरण टाइल।

  • जैसा कि चित्र 8 में दिखाया गया है, खाली स्थिति दृश्य पर क्लिक करने से डिफ़ॉल्ट एनएफसी भुगतान ऐप खुल जाता है। यह खाली स्थिति दृश्य केवल तभी प्रदर्शित होता है जब उपयोगकर्ता के पास वॉलेट में एक कार्ड बचा होता है, कार्ड को कार्ड विवरण पृष्ठ से हटा देता है, और फिर वॉलेट दृश्य पर वापस जाता है।

  • लॉक स्क्रीन वॉलेट आइकन दिखाती है।

क्विक एक्सेस वॉलेट में खाली स्थिति दृश्य

चित्र 8. क्विक एक्सेस वॉलेट यूआई में खाली स्थिति दृश्य।

शून्येतर अवस्था

  • यदि वॉलेट ऐप एक या अधिक कार्ड प्रदान करता है, तो शेड में टाइल चित्र 9 में दिखाए अनुसार दिखाई देती है।

    जब वॉलेट ऐप में एक या अधिक कार्ड हों तो शेड में उदाहरण टाइल

    चित्र 9. जब वॉलेट ऐप में एक या अधिक कार्ड हों तो शेड में उदाहरण टाइल।

  • टाइल पर क्लिक करने पर एक कार्ड हिंडोला दिखाई देता है।

  • लॉक स्क्रीन एक बटन दिखाती है जो क्विक एक्सेस वॉलेट खोलता है।

    प्रदर्शित कार्ड के साथ त्वरित एक्सेस वॉलेट यूआई

    चित्र 10. प्रदर्शित कार्ड के साथ त्वरित एक्सेस वॉलेट यूआई।

  • यदि प्रदर्शित कार्ड एनएफसी भुगतान विधि का प्रतिनिधित्व करता है, तो फोन को एनएफसी भुगतान टर्मिनल पर रखने से उस भुगतान विधि का उपयोग किया जाएगा और वॉलेट दृश्य खारिज कर दिया जाएगा।

  • प्रदर्शित कार्ड पर क्लिक करने से उस कार्ड की विस्तृत गतिविधि खुल जाती है।

  • यदि QuickAccessWalletService द्वारा एकाधिक कार्ड प्रदान किए जाते हैं, तो उपयोगकर्ता कार्डों के बीच स्वाइप करने में सक्षम होता है।

  • ओवरफ्लो मेनू में एक प्रविष्टि है: लॉक स्क्रीन सेटिंग्स खोलें ताकि उपयोगकर्ता शो वॉलेट विकल्प को बदल सके।

राज्य परीक्षण लॉक करें

  • यदि फोन लॉक है, तो वॉलेट त्वरित सेटिंग्स शेड पर दिखाई देता है, जिसमें डिफ़ॉल्ट भुगतान ऐप में कोई कार्ड मौजूद नहीं होने पर कार्ड जोड़ें , या डिफ़ॉल्ट भुगतान ऐप में कार्ड मौजूद होने पर उपयोग के लिए अनलॉक का विवरण होता है।
  • यदि फोन लॉक है, तो लॉक स्क्रीन पर वॉलेट दृश्यता को सिक्योर Secure.LOCKSCREEN_SHOW_WALLET सेटिंग द्वारा नियंत्रित किया जाता है, जिसे सेटिंग्स में नियंत्रित किया जाता है।
  • यदि फ़ोन लॉक है, तो LOCKSCREEN_SHOW_WALLET false है, और डिफ़ॉल्ट NFC भुगतान ऐप में कोई कार्ड मौजूद नहीं है, वॉलेट लॉक स्क्रीन पर प्रदर्शित नहीं होता है।
  • यदि फ़ोन लॉक है, तो LOCKSCREEN_SHOW_WALLET true है, और डिफ़ॉल्ट NFC भुगतान ऐप में कोई कार्ड मौजूद नहीं है, वॉलेट लॉक स्क्रीन पर प्रदर्शित नहीं होता है।
  • यदि फ़ोन लॉक है, तो LOCKSCREEN_SHOW_WALLET true है, और कार्ड डिफ़ॉल्ट NFC भुगतान ऐप में मौजूद हैं, वॉलेट लॉक स्क्रीन पर प्रदर्शित होता है।
  • लॉक स्क्रीन पर वॉलेट प्रदर्शित होने के दौरान फोन को अनलॉक करने से कार्ड की आवश्यकता हो जाती है, जिसके परिणामस्वरूप कार्ड की सामग्री भिन्न हो सकती है।

अभिगम्यता परीक्षण

  • टॉकबैक उपयोगकर्ता बाएं और दाएं स्वाइप करके और कार्ड की सामग्री विवरण सुनकर वॉलेट दृश्य को नेविगेट कर सकते हैं।
  • टॉकबैक सक्षम होने पर बाएँ और दाएँ स्वाइप करने से प्रत्येक कार्ड का चयन होता है। टॉकबैक उपयोगकर्ता एनएफसी भुगतान टर्मिनल पर एनएफसी भुगतान विधि का चयन और उपयोग कर सकते हैं।

एंड्रॉइड 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 सक्षम और निर्यात किया गया है लेकिन कोई कार्ड प्रदान नहीं करता है, तो क्विक एक्सेस वॉलेट यूआई खाली स्थिति दृश्य प्रदर्शित करता है।
  • खाली स्थिति दृश्य पर क्लिक करने से वॉलेट ऐप खुल जाता है।

    क्विक एक्सेस वॉलेट यूआई में खाली स्थिति दृश्य
    चित्र 11. क्विक एक्सेस वॉलेट यूआई में खाली स्थिति दृश्य।

शून्येतर अवस्था

  • यदि वॉलेट ऐप एक या अधिक कार्ड प्रदान करता है, तो कार्ड क्विक एक्सेस वॉलेट यूआई में प्रदर्शित होते हैं।

    प्रदर्शित कार्ड के साथ त्वरित एक्सेस वॉलेट यूआई
    चित्र 12. प्रदर्शित कार्ड के साथ त्वरित एक्सेस वॉलेट यूआई।
  • यदि प्रदर्शित कार्ड एनएफसी भुगतान विधि का प्रतिनिधित्व करता है, तो फोन को एनएफसी भुगतान टर्मिनल पर रखने से उस भुगतान विधि का उपयोग किया जाएगा और वॉलेट दृश्य खारिज कर दिया जाएगा।

  • प्रदर्शित कार्ड पर क्लिक करने से वॉलेट दृश्य खारिज हो जाता है और उस कार्ड के लिए विस्तृत गतिविधि खुल जाती है।

  • यदि QuickAccessWalletService द्वारा एकाधिक कार्ड प्रदान किए जाते हैं, तो उपयोगकर्ता कार्डों के बीच स्वाइप करने में सक्षम होता है।

  • ओवरफ़्लो मेनू में दो प्रविष्टियाँ होती हैं: एक जो वॉलेट ऐप खोलती है और एक जो सेटिंग्स में शो कार्ड और पास स्क्रीन खोलती है।

राज्य परीक्षण लॉक करें

  • यदि फ़ोन लॉक है, तो वॉलेट दृश्यता को Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT सेटिंग द्वारा नियंत्रित किया जाता है, जिसे सेटिंग्स में नियंत्रित किया जा सकता है।
  • यदि फ़ोन लॉक है और POWER_MENU_LOCK_SHOW_CONTENT false है, तो वॉलेट प्रदर्शित नहीं होता है।
  • यदि फ़ोन लॉक है और POWER_MENU_LOCK_SHOW_CONTENT true है, तो वॉलेट प्रदर्शित होता है।
  • लॉक स्क्रीन पर वॉलेट प्रदर्शित होने के दौरान फोन को अनलॉक करने से कार्डों की दोबारा क्वेरी हो जाती है, जिसके परिणामस्वरूप कार्ड की सामग्री भिन्न हो सकती है।

अभिगम्यता परीक्षण

  • टॉकबैक उपयोगकर्ता बाएं और दाएं स्वाइप करके और कार्ड की सामग्री विवरण सुनकर वॉलेट दृश्य को नेविगेट कर सकते हैं।
  • टॉकबैक सक्षम होने पर बाएँ और दाएँ स्वाइप करने से प्रत्येक कार्ड का चयन होता है। टॉकबैक उपयोगकर्ता एनएफसी भुगतान टर्मिनल पर एनएफसी भुगतान विधि का चयन और उपयोग कर सकते हैं।