क्विक ऐक्सेस वॉलेट

झटपट ऐक्सेस वॉलेट सुविधा, जो यहां उपलब्ध है Android 11 का इस्तेमाल करके, उपयोगकर्ता ये काम कर सकते हैं पेमेंट कार्ड और काम के पास को सीधे पावर मेन्यू से ऐक्सेस करें. ज़्यादा इस्तेमाल ऐसे मामलों में, पेमेंट का सही तरीका चुनने के बाद, एनएफ़सी टर्मिनल पर लेन-देन करने और फ़्लाइट और दूसरे पास को तुरंत ऐक्सेस करने की सुविधा का इस्तेमाल किया जा सकता है.

Android 12 या उसके बाद वाले वर्शन में, क्विक ऐक्सेस Wallet यह सुविधा, शेड में दिखने वाली इमेज में दिखाई गई है, जैसा कि पहली इमेज और दूसरी इमेज में दिखाया गया है.

शेड में क्विक ऐक्सेस वॉलेट की सुविधा
पहली इमेज. क्विक ऐक्सेस वॉलेट की सुविधा (डिवाइस लॉक किया गया).
शेड में क्विक ऐक्सेस वॉलेट की सुविधा
दूसरी इमेज. क्विक ऐक्सेस वॉलेट की सुविधा (डिवाइस अनलॉक किया गया).

Android 11 में, यह सुविधा पावर मेन्यू में उपलब्ध है, जैसा कि यहां दिखाया गया है तीसरी इमेज.

पावर मेन्यू में क्विक ऐक्सेस Wallet की सुविधा
तीसरी इमेज. क्विक ऐक्सेस Wallet की सुविधा चालू है मेन्यू चुनें.

ज़रूरी शर्तें

क्विक ऐक्सेस वॉलेट की सुविधा का इस्तेमाल करने के लिए, आपके डिवाइस में एनएफ़सी होना ज़रूरी है. सुविधा डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन के QuickAccessWalletService से लिंक करता है. इसका मतलब है कि कि डिवाइस में एनएफ़सी की सुविधा भी होनी चाहिए होस्ट पर आधारित कार्ड एम्युलेशन (एचसीई).

सुविधाओं के बारे में खास जानकारी

क्विक ऐक्सेस वॉलेट के दो हिस्से हैं: क्विक ऐक्सेस वॉलेट यूज़र इंटरफ़ेस (यूआई) और क्विक ऐक्सेस वाले वॉलेट कार्ड की सेवा देने वाली कंपनी के तौर पर काम करती है.

Android 12 या उसके बाद के वर्शन में, Wallet के यूज़र इंटरफ़ेस (यूआई) को सिस्टम में चलाया जाता है यूज़र इंटरफ़ेस (यूआई) और इसमें मौजूद frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. तय सीमा में Android 11, Wallet का यूज़र इंटरफ़ेस (यूआई), जो इसमें मौजूद है: platform/packages/apps/QuickAccessWallet इंस्टॉल और व्हाइटलिस्ट होनी चाहिए.

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

लागू करना

क्विक ऐक्सेस वाले वॉलेट के यूज़र इंटरफ़ेस (यूआई) पर कार्ड उपलब्ध कराने के लिए, एनएफ़सी पेमेंट ऐप्लिकेशन को QuickAccessWalletService. पेमेंट ऐप्लिकेशन में, सेवा का विज्ञापन दिखाने वाली मेनिफ़ेस्ट एंट्री ज़रूर शामिल होनी चाहिए.

यह पक्का करने के लिए कि सिर्फ़ सिस्टम यूज़र इंटरफ़ेस (यूआई) QuickAccessWalletService से बाइंड कर सके, इसके लिए एनएफ़सी पेमेंट ऐप्लिकेशन के लिए ज़रूरी है कि 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>

लिंक की गई एक्सएमएल फ़ाइल में वॉलेट के बारे में ज़्यादा जानकारी शामिल है:

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

QuickAccessWalletService को लागू करने से जुड़े अतिरिक्त दस्तावेज़ों के लिए, यहां देखें QuickAccessWalletService और TestQuickAccessWalletService सीटीएस टेस्ट.

Android 11 में क्विक ऐक्सेस वाले Wallet के यूज़र इंटरफ़ेस (यूआई) को चालू करें

पावर मेन्यू से क्विक ऐक्सेस वॉलेट उपलब्ध कराने के लिए, इसे कॉन्फ़िगर करें Android 11 में, QuickAccessWallet बिल्ड में टारगेट करें और globalactions.wallet प्लगिन को जोड़कर उसे चालू करें कोड सैंपल में बोल्ड में नीचे दी गई लाइन overlay/frameworks/base/packages/SystemUI/res/values/config.xml फ़ाइल.

&#x3C;resources>
    ...
    &#x3C;!-- SystemUI Plugins that can be loaded on user builds. -->
    &#x3C;string-array name="config_pluginWhitelist" translatable="false">
        &#x3C;item>com.android.systemui</item>
        &#x3C;item>com.android.systemui.plugin.globalactions.wallet</item>
    &#x3C;/string-array>
&#x3C;/resources>

इसमें डिफ़ॉल्ट NFC भुगतान ऐप्लिकेशन दर्ज करें सेटिंग कॉन्फ़िगरेशन फ़ाइल def_nfc_payment_component का इस्तेमाल करके.

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

QuickAccessWalletService को लागू करने की जानकारी

QuickAccessWalletService में तीन ऐब्स्ट्रैक्ट तरीके हैं, जिन्हें लागू करना ज़रूरी है: onWalletCardsRequested, onWalletCardSelected, और onWalletDismissed. कॉन्टेंट बनाने नीचे दिए गए डायग्राम में, क्विक ऐक्सेस वॉलेट से कॉल करने का क्रम दिखाया गया है एनएफ़सी पेमेंट के ठीक पहले देखा जाता है.

क्विक ऐक्सेस वाले Wallet के क्रम का डायग्राम

क्विक ऐक्सेस वॉलेट देखते समय कॉल के क्रम का उदाहरण
चौथी इमेज. क्विक ऐक्सेस Wallet होने के दौरान, कॉल के क्रम का उदाहरण देखा गया.

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

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

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

  4. QuickAccessWalletService उन कार्ड की गणना करता है जिन्हें वह दिखाना चाहता है, इसके बाद, दिए गए कॉलबैक पर onSuccess तरीके को कॉल करता है. यह समय है का सुझाव दिया जाता है कि सेवा किसी बैकग्राउंड थ्रेड पर ये कार्रवाइयां करे.

  5. कार्ड के दिखाए जाते ही, सिस्टम यूज़र इंटरफ़ेस (यूआई) इस बारे में सूचना देता है QuickAccessWalletService, जिस पर कॉल करके पहला कार्ड चुना गया है onWalletCardSelected.

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

ऊपर दिए गए उदाहरण में, उपयोगकर्ता फ़ोन को एनएफ़सी से पेमेंट करने की रेंज में लाया है वॉलेट के दिखाए जाने के दौरान टर्मिनल. एनएफ़सी को मैनेज करने के लिए मुख्य कॉम्पोनेंट पेमेंट HostApduService है. एपीडीयू को प्रोसेस करने के लिए, इसे लागू करना ज़रूरी है एनएफ़सी रीडर से मिला है (ज़्यादा जानकारी के लिए, होस्ट के आधार पर कार्ड एम्युलेशन). यह माना जाता है कि पेमेंट ऐप्लिकेशन, प्रोग्रेस दिखाने के लिए कोई गतिविधि शुरू करता है और एनएफ़सी टर्मिनल से इंटरैक्शन का नतीजा है. हालांकि, क्विक ऐक्सेस 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 के बारे में ज़्यादा जानकारी के लिए, इसे देखें QuickAccessWalletService API का संदर्भ.

अनुमतियां

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

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

Android 12 में सेटिंग

लॉक स्क्रीन से क्विक ऐक्सेस वॉलेट को चालू या बंद करने के लिए, उपयोगकर्ता ये काम कर सकते हैं: सेटिंग में वॉलेट दिखाएं टॉगल का इस्तेमाल करें > डिसप्ले > लॉक स्क्रीन. शेड में मौजूद वॉलेट को बंद करने के लिए, उपयोगकर्ताओं को मैन्युअल तरीके से बदलाव करना होगा इसे क्विक सेटिंग शेड में देख सकते हैं.

लॉक स्क्रीन से Wallet की सुविधा को चालू या बंद करने के लिए टॉगल करें

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

Android 11 में सेटिंग

उपयोगकर्ता, सेटिंग ऐप्लिकेशन में जाकर क्विक ऐक्सेस वॉलेट की सुविधा को बंद कर सकते हैं. कॉन्टेंट बनाने सेटिंग पेज इसमें मौजूद है: सेटिंग > सिस्टम > हाथ के जेस्चर > कार्ड और पास.

क्विक ऐक्सेस वॉलेट सुविधा को चालू या बंद करने के लिए सेटिंग पेज
छठी इमेज. सेटिंग पेज पर जाकर Wallet की क्विक ऐक्सेस सुविधा.

पसंद के मुताबिक बनाएं

सिस्टम यूज़र इंटरफ़ेस (यूआई) में किसी अन्य जगह पर क्विक ऐक्सेस वॉलेट व्यू जोड़ें

कॉन्टेंट बनाने क्विक ऐक्सेस वाले Wallet का यूज़र इंटरफ़ेस (यूआई) को सिस्टम प्लगिन. हालांकि एओएसपी को लागू करने की प्रक्रिया में इसका इस्तेमाल GlobalActionsDialog (स्क्रीन को देर तक दबाकर रखने पर दिखाया जाता है), इस सुविधा को इस्तेमाल करने के लिए, हाथ के किसी दूसरे जेस्चर का इस्तेमाल किया जा सकता है जब तक आप प्लग इन इंटरफ़ेस के ज़रिए बताए गए अनुबंध को बनाए रखेंगे.

public interface GlobalActionsPanelPlugin extends Plugin {

  /** Invoked when the view is shown */
  PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);

  /** Callbacks for interacting with the view container */
  interface Callbacks {
    /** Dismisses the view */
    void dismissGlobalActionsMenu();

    /** Starts a PendingIntent, dismissing the keyguard if necessary. */
    void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
  }

  /** Provides the Quick Access Wallet view */
  interface PanelViewController {

    /** Returns the QuickAccessWallet view, which may take any size */
    View getPanelContent();

    /** Invoked when the view is dismissed */
    void onDismissed();

    /** Invoked when the device is either locked or unlocked. */
    void onDeviceLockStateChanged(boolean locked);
  }
}

कॉन्टेंट बनाने क्विक ऐक्सेस वाले Wallet का यूज़र इंटरफ़ेस (यूआई) GlobalActionsPanelPlugin और PanelViewController को लागू करता है. GlobalActionsDialog का उपयोग करके वॉलेट प्लगिन का एक इंस्टेंस प्राप्त करता है com.android.systemui.Dependency:

GlobalActionsPanelPlugin mPanelPlugin =
    Dependency.get(ExtensionController.class)
        .newExtension(GlobalActionsPanelPlugin.class)
        .withPlugin(GlobalActionsPanelPlugin.class)
        .build()
        .get();

यह जांच करने के बाद कि प्लग इन खाली नहीं है और 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 टारगेट. क्विक ऐक्सेस को हटाने के लिए Wallet को पावर मेन्यू से चुनकर, सिस्टम यूज़र इंटरफ़ेस (यूआई) के किसी अन्य व्यू में जोड़ें, बिल्ड टारगेट शामिल करें और GlobalActionsPanelPlugin के रेफ़रंस हटाएं भेजने वाला GlobalActionsImpl.

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

Android 12

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

Android 11

Android 11 में, क्विक ऐक्सेस Wallet किसे दिखेगा, यह दो सुरक्षित सेटिंग से तय होता है: GLOBAL_ACTIONS_PANEL_ENABLED और GLOBAL_ACTIONS_PANEL_AVAILABLE. कॉन्टेंट बनाने AVAILABLE सेटिंग से यह कंट्रोल होता है कि इस सुविधा को इन सेटिंग में चालू और बंद किया जा सकता है या नहीं सेटिंग. यह सेटिंग, true पर सेट है WalletPluginService. अगर QuickAccessWallet को बिल्ड में शामिल नहीं किया गया है, तो सेटिंग बनी रहती है false. इसी जगह पर, ENABLED सेटिंग डिफ़ॉल्ट रूप से true पर सेट है. हालांकि, सेटिंग में जाकर इसे बंद किया जा सकता है. डिफ़ॉल्ट व्यवहार को बदलने के लिए, WalletPluginService#enableFeatureInSettings में बदलाव करें.

पुष्टि करें

क्विक ऐक्सेस वॉलेट के लागू होने की पुष्टि करने के लिए, सीटीएस और मैन्युअल टेस्ट. प्लगिन में किए गए बदलावों को लागू करने के लिए, रोबोलेक्टिक टेस्ट का इस्तेमाल करें.

सीटीएस टेस्ट

सीटीएस टेस्ट करने के लिए, cts/tests/quickaccesswallet.

Android 12 के लिए मैन्युअल तरीके से जांच करना

क्विक ऐक्सेस वॉलेट की मुख्य सुविधाओं की जांच करने के लिए, एनएफ़सी से पेमेंट करना होगा टर्मिनल (असली या नकली) और एनएफ़सी पेमेंट ऐप्लिकेशन जो इन चीज़ों को लागू करता हो QuickAccessWalletService (वॉलेट ऐप्लिकेशन). वे मुख्य सुविधाएं जिनकी जांच की जानी चाहिए इनमें ये शामिल हैं: उपलब्धता, ज़ीरो स्टेट, कार्ड चुनना, और लॉक स्क्रीन का व्यवहार.

उपलब्धता

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

ज़ीरो स्टेट

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

    शेड में मौजूद टाइल का उदाहरण, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन को दिखा रहा है

    सातवीं इमेज. शेड में मौजूद टाइल का उदाहरण, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन को दिखा रहा है.

  • खाली स्थिति वाले व्यू पर क्लिक करने से, जैसा कि इमेज 8 में दिखाया गया है डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन. यह खाली स्थिति वाला व्यू सिर्फ़ तब दिखता है, जब उपयोगकर्ता के वॉलेट में एक कार्ड बचा है, इसलिए वह कार्ड की जानकारी से कार्ड हटा देता है वॉलेट व्यू पर वापस जाता है.

  • लॉक स्क्रीन पर वॉलेट का आइकॉन दिखेगा.

क्विक ऐक्सेस वॉलेट में खाली स्थिति वाला व्यू

आठवीं इमेज. क्विक ऐक्सेस वाले वॉलेट यूज़र इंटरफ़ेस (यूआई) में खाली स्थिति वाला व्यू.

नॉन-ज़ीरो स्थिति

  • अगर Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड उपलब्ध हैं, तो शेड में मौजूद टाइल जैसा कि चित्र 9 में दिखाया गया है.

    Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड होने पर, शेड में दिखने वाली टाइल का उदाहरण

    नौवीं इमेज. वॉलेट ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड होने पर, शेड में दिखने वाली टाइल का उदाहरण.

  • टाइल पर क्लिक करने से एक कार्ड कैरसेल दिखता है.

  • लॉक स्क्रीन पर एक बटन दिखता है. इससे, क्विक ऐक्सेस वॉलेट खुलता है.

    कार्ड की जानकारी के साथ, क्विक ऐक्सेस वाले वॉलेट के यूज़र इंटरफ़ेस (यूआई) की इमेज

    10वीं इमेज. क्विक ऐक्सेस वाले वॉलेट का यूज़र इंटरफ़ेस (यूआई), जिसमें एक कार्ड दिख रहा है.

  • अगर दिखाया गया कार्ड एनएफ़सी से पेमेंट करने का तरीका दिखाता है, तो फ़ोन को एनएफ़सी पेमेंट टर्मिनल से कनेक्ट करने पर, पेमेंट करने के उसी तरीके का इस्तेमाल किया जाएगा और वॉलेट व्यू खारिज हो जाता है.

  • दिखाए जा रहे कार्ड पर क्लिक करने से, उस कार्ड के लिए ज़्यादा जानकारी वाली गतिविधि खुल जाती है.

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

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

लॉक स्टेट टेस्ट

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

सुलभता की जांच

  • TalkBack का इस्तेमाल करने वाले लोग, वॉलेट व्यू को नेविगेट करने के लिए, बाईं और दाईं ओर स्वाइप कर सकते हैं साथ ही, कार्ड में मौजूद कॉन्टेंट की जानकारी भी सुनी जा सकती है.
  • TalkBack की सुविधा चालू होने पर, बाईं और दाईं ओर स्वाइप करने पर, हर कार्ड एक-एक करके चुना जाता है. TalkBack की सुविधा इस्तेमाल करने वाले लोग, एनएफ़सी से पेमेंट करते समय, एनएफ़सी का इस्तेमाल करके पैसे चुकाने का तरीका चुन सकते हैं और उसका इस्तेमाल कर सकते हैं टर्मिनल.

Android 11 के लिए मैन्युअल टेस्ट

क्विक ऐक्सेस वॉलेट की मुख्य सुविधाओं की जांच करने के लिए, एनएफ़सी से पेमेंट करना होगा टर्मिनल (असली या नकली) और एनएफ़सी पेमेंट ऐप्लिकेशन जो इन चीज़ों को लागू करता हो QuickAccessWalletService (वॉलेट ऐप्लिकेशन). वे मुख्य सुविधाएं जिनकी जांच की जानी चाहिए उपलब्धता, ज़ीरो स्टेट, कार्ड चुनना, और लॉक स्क्रीन का व्यवहार शामिल होना चाहिए.

उपलब्धता

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

ज़ीरो स्टेट

  • अगर QuickAccessWalletService चालू और एक्सपोर्ट किया जाता है, लेकिन उसे एक्सपोर्ट नहीं किया जाता कोई भी कार्ड उपलब्ध कराने पर, क्विक ऐक्सेस वॉलेट का यूज़र इंटरफ़ेस (यूआई), खाली स्थिति वाला व्यू दिखाता है.
  • खाली स्थिति वाले व्यू पर क्लिक करने से वॉलेट ऐप्लिकेशन खुलता है.

    क्विक ऐक्सेस वाले Wallet के यूज़र इंटरफ़ेस (यूआई) में खाली स्थिति वाला व्यू
    11वीं इमेज. क्विक ऐक्सेस की मदद से, किसी भी खाली जगह की जानकारी देखने की सुविधा Wallet का यूज़र इंटरफ़ेस (यूआई).

नॉन-ज़ीरो स्थिति

  • अगर Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड उपलब्ध हैं, तो कार्ड दिखाए जाएंगे के विकल्प दिख रहे हैं.

    कार्ड की जानकारी के साथ, क्विक ऐक्सेस वाले वॉलेट के यूज़र इंटरफ़ेस (यूआई) की इमेज
    12वीं इमेज. कार्ड के साथ, फटाफट ऐक्सेस वाले Wallet के यूज़र इंटरफ़ेस (यूआई) की इमेज दिखाई गई हैं.
  • अगर दिखाया गया कार्ड एनएफ़सी से पेमेंट करने का तरीका दिखाता है, तो फ़ोन को एनएफ़सी पेमेंट टर्मिनल से कनेक्ट करने पर, पेमेंट करने के उसी तरीके का इस्तेमाल किया जाएगा और वॉलेट व्यू खारिज हो जाता है.

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

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

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

लॉक स्टेट टेस्ट

  • अगर फ़ोन लॉक है, तो वॉलेट की विज़िबिलिटी Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT सेटिंग, जो कुछ भी हो सकती है को सेटिंग में कंट्रोल किया जा सकता है.
  • अगर फ़ोन लॉक है और POWER_MENU_LOCK_SHOW_CONTENT false है, तो वॉलेट प्रदर्शित नहीं हो रहा है.
  • अगर फ़ोन लॉक है और POWER_MENU_LOCK_SHOW_CONTENT true है, तो वॉलेट दिखाई दे रहा है.
  • लॉक पर वॉलेट के दिखने के दौरान फ़ोन को अनलॉक करें स्क्रीन के नतीजों को दिखाने वाले कार्ड से फिर से क्वेरी की जाएगी. इस वजह से कार्ड का कॉन्टेंट अलग-अलग तरह से होना चाहिए.

सुलभता की जांच

  • TalkBack का इस्तेमाल करने वाले लोग, बाईं और दाईं ओर स्वाइप करके वॉलेट व्यू को नेविगेट कर सकते हैं साथ ही, कार्ड में मौजूद कॉन्टेंट की जानकारी भी सुनी जा सकती है.
  • TalkBack की सुविधा चालू होने पर बाईं और दाईं ओर स्वाइप करने से, हर कार्ड एक-एक करके चुना जाता है. TalkBack के उपयोगकर्ता, एनएफ़सी से पेमेंट करते समय एनएफ़सी का पेमेंट का तरीका चुन सकते हैं और उसका इस्तेमाल कर सकते हैं टर्मिनल.