Android 11 में उपलब्ध, क्विक ऐक्सेस वॉलेट की सुविधा की मदद से, उपयोगकर्ता सीधे पावर मेन्यू से पेमेंट कार्ड और काम के पास ऐक्सेस कर सकते हैं. एनएफ़सी टर्मिनल पर लेन-देन करने से पहले, पैसे चुकाने का सही तरीका चुनना और आने वाले इवेंट के लिए फ़्लाइट और अन्य पास तुरंत ऐक्सेस करना, इसके इस्तेमाल के मुख्य उदाहरण हैं.
Android 12 या उसके बाद के वर्शन में, शैडो से Wallet को तुरंत ऐक्सेस करने की सुविधा उपलब्ध है. इसकी जानकारी, पहली और दूसरी इमेज में दी गई है.
Android 11 में, यह सुविधा पावर मेन्यू में उपलब्ध है, जैसा कि तीसरे चित्र में दिखाया गया है.
ज़रूरी शर्तें
Wallet की क्विक ऐक्सेस टाइल की सुविधा का इस्तेमाल करने के लिए, आपके डिवाइस में एनएफ़सी होना ज़रूरी है. यह सुविधा, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन के QuickAccessWalletService
से जुड़ी होती है. इसका मतलब है कि डिवाइस में एनएफ़सी होस्ट-आधारित कार्ड इम्यूलेशन (एचसीई) की सुविधा भी होनी चाहिए.
सुविधाओं के बारे में खास जानकारी
क्विक ऐक्सेस वॉलेट के दो हिस्से होते हैं: क्विक ऐक्सेस वॉलेट का यूज़र इंटरफ़ेस (यूआई) और क्विक ऐक्सेस वॉलेट कार्ड देने वाली कंपनी.
Android 12 या उसके बाद के वर्शन में, Wallet का यूज़र इंटरफ़ेस (यूआई), सिस्टम यूज़र इंटरफ़ेस (यूआई) में चलता है. यह frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
में मौजूद होता है. Android 11 में, Wallet का यूज़र इंटरफ़ेस (यूआई) platform/packages/apps/QuickAccessWallet
में मौजूद होता है. इसे इंस्टॉल करना और व्हाइटलिस्ट में जोड़ना ज़रूरी है.
क्विक ऐक्सेस वॉलेट कार्ड देने वाला डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन है. उपयोगकर्ता एक साथ कई एनएफ़सी पेमेंट ऐप्लिकेशन इंस्टॉल कर सकते हैं. हालांकि, पावर मेन्यू में सिर्फ़ डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन ही कार्ड दिखा सकता है. आपके पास यह तय करने का विकल्प होता है कि शुरुआत में कौनसा एनएफ़सी पेमेंट ऐप्लिकेशन डिफ़ॉल्ट तौर पर सेट किया जाए. हालांकि, उपयोगकर्ता सेटिंग में जाकर कोई दूसरा ऐप्लिकेशन चुन सकते हैं. अगर सिर्फ़ एक एनएफ़सी पेमेंट ऐप्लिकेशन इंस्टॉल है, तो वह डिफ़ॉल्ट रूप से सेट हो जाता है (CardEmulationManager
देखें).
लागू करना
Wallet के 'तुरंत ऐक्सेस' यूज़र इंटरफ़ेस (यूआई) में कार्ड दिखाने के लिए, एनएफ़सी पेमेंट ऐप्लिकेशन को 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>
लिंक की गई एक्सएमएल फ़ाइल में, Wallet के बारे में ज़्यादा जानकारी शामिल होती है:
<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
का रेफ़रंस पाने की कोशिश करनी चाहिए. साथ ही, TYPE_NFC_PAYMENT_STARTED
इवेंट टाइप के साथ QuickAccessWalletService#sendEvent
को कॉल करना चाहिए. इससे, तुरंत ऐक्सेस किए जा सकने वाले वॉलेट का यूज़र इंटरफ़ेस (यूआई) हट जाता है. इससे, उपयोगकर्ता को पेमेंट गतिविधि को बिना किसी रुकावट के देखने में मदद मिलती है.
QuickAccessWalletService
को लागू करने के बारे में ज़्यादा दस्तावेज़ पाने के लिए, QuickAccessWalletService
और
TestQuickAccessWalletService
के सीटीएस टेस्ट देखें.
Android 11 में, Wallet को तुरंत ऐक्सेस करने की सुविधा का यूज़र इंटरफ़ेस (यूआई) चालू करना
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>
def_nfc_payment_component
का इस्तेमाल करके, सेटिंग कॉन्फ़िगरेशन फ़ाइल में, एनएफ़सी से पेमेंट करने के लिए डिफ़ॉल्ट ऐप्लिकेशन तय करें.
'झटपट ऐक्सेस वॉलेट' में कार्ड दिखाने के लिए, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन में QuickAccessWalletService
होना चाहिए. अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन, इस सेवा को एक्सपोर्ट नहीं करता है, तो Wallet का यूज़र इंटरफ़ेस (यूआई) छिप जाता है.
QuickAccessWalletService को लागू करने से जुड़ी जानकारी
QuickAccessWalletService
में तीन अब्सट्रैक्ट तरीके हैं जिन्हें लागू करना ज़रूरी है:
onWalletCardsRequested
, onWalletCardSelected
, और onWalletDismissed
. यहां दिए गए सिलसिलेवार डायग्राम में, एनएफ़सी पेमेंट से ठीक पहले क्विक ऐक्सेस वॉलेट को देखने पर होने वाले कॉल के क्रम को दिखाया गया है.
क्विक ऐक्सेस Wallet के सभी व्यू के बाद, एनएफ़सी पेमेंट नहीं होता. हालांकि, ऊपर दिए गए चौथे चित्र में QuickAccessWalletService
की सभी सुविधाओं के बारे में बताया गया है. इस उदाहरण में, Wallet में कार्ड को तुरंत ऐक्सेस करने की सुविधा देने वाली कंपनी, नीले रंग में दिखाए गए एलिमेंट लागू करती है. यह माना जाता है कि पेमेंट कार्ड, डिवाइस पर डेटाबेस में सेव किए जाते हैं और इन्हें PaymentCardManager
नाम के इंटरफ़ेस से ऐक्सेस किया जाता है. यह भी माना जाता है कि PaymentActivity
नाम की गतिविधि, एनएफ़सी पेमेंट का नतीजा दिखाती है. फ़्लो इस तरह से आगे
बढ़ता है:
- उपयोगकर्ता, क्विक ऐक्सेस वॉलेट को खोलने के लिए कोई जेस्चर करता है.
क्विक ऐक्सेस वॉलेट यूज़र इंटरफ़ेस (सिस्टम यूज़र इंटरफ़ेस का हिस्सा), पैकेज मैनेजर की जांच करता है. इससे यह पता चलता है कि डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन,
QuickAccessWalletService
को एक्सपोर्ट करता है या नहीं.- अगर सेवा एक्सपोर्ट नहीं की जाती है, तो क्विक ऐक्सेस वॉलेट नहीं दिखता.
Wallet को तुरंत ऐक्सेस करने की सुविधा का यूज़र इंटरफ़ेस (यूआई),
QuickAccessWalletService
से जुड़ा होता है औरonWalletCardsRequested
को कॉल करता है. यह तरीका, अनुरोध ऑब्जेक्ट लेता है. इसमें, उपलब्ध कार्ड की संख्या और साइज़ के साथ-साथ कॉलबैक का डेटा होता है. कॉलबैक को बैकग्राउंड थ्रेड से कॉल किया जा सकता है.QuickAccessWalletService
उन कार्ड को कंप्यूट करता है जिन्हें वह दिखाना चाहता है. इसके बाद, दिए गए कॉलबैक परonSuccess
तरीके को कॉल करता है. हमारा सुझाव है कि सेवा, ये कार्रवाइयां बैकग्राउंड थ्रेड पर करे.कार्ड दिखते ही, सिस्टम यूज़र इंटरफ़ेस (यूआई) यह सूचना देता है कि
QuickAccessWalletService
को कॉल करके पहला कार्ड चुन लिया गया हैonWalletCardSelected
.- जब भी उपयोगकर्ता कोई नया कार्ड चुनता है, तो
onWalletCardSelected
को कॉल किया जाता है. onWalletCardSelected
को तब भी कॉल किया जा सकता है, जब फ़िलहाल चुना गया कार्ड न बदला गया हो.
- जब भी उपयोगकर्ता कोई नया कार्ड चुनता है, तो
जब उपयोगकर्ता क्विक ऐक्सेस वॉलेट को खारिज करता है, तो सिस्टम यूज़र इंटरफ़ेस (यूआई),
onWalletDismissed
को कॉल करकेQuickAccessWalletService
को इसकी सूचना देता है.
ऊपर दिए गए उदाहरण में, उपयोगकर्ता ने Wallet दिखाने के दौरान, फ़ोन को एनएफ़सी पेमेंट टर्मिनल की रेंज में लाया है. एनएफ़सी से किए जाने वाले पेमेंट को मैनेज करने के लिए, HostApduService
एक अहम कॉम्पोनेंट है. एनएफ़सी रीडर से मिले एपीडीयू को प्रोसेस करने के लिए, इसे लागू करना ज़रूरी है. ज़्यादा जानकारी के लिए, होस्ट-आधारित कार्ड इम्यूलेशन देखें.
यह माना जाता है कि पेमेंट ऐप्लिकेशन, एनएफ़सी टर्मिनल के साथ इंटरैक्शन की प्रोग्रेस और नतीजा दिखाने के लिए कोई गतिविधि शुरू करता है. हालांकि, Wallet को फटाफट ऐक्सेस करने की सुविधा का यूज़र इंटरफ़ेस (यूआई), ऐप्लिकेशन विंडो के सबसे ऊपर दिखता है. इसका मतलब है कि पेमेंट की गतिविधि, Wallet को फटाफट ऐक्सेस करने की सुविधा के यूज़र इंटरफ़ेस (यूआई) से छिप जाती है. इसे ठीक करने के लिए, ऐप्लिकेशन को सिस्टम यूज़र इंटरफ़ेस (यूआई) को सूचित करना होगा कि क्विक ऐक्सेस वॉलेट यूज़र इंटरफ़ेस (यूआई) को खारिज किया जाना चाहिए. ऐसा करने के लिए, यह बाउंड किए गए 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
एपीआई का रेफ़रंस देखें.
अनुमतियां
QuickAccessWalletService
की मेनिफ़ेस्ट एंट्री के लिए, Android 11 में दी गई android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
अनुमति की ज़रूरत होनी चाहिए. यह सिग्नेचर लेवल की अनुमति है, जो सिस्टम यूज़र इंटरफ़ेस (यूआई) के पास होती है. इसका मतलब है कि सिर्फ़ सिस्टम यूज़र इंटरफ़ेस (यूआई) की प्रोसेस, QuickAccessWalletService
को लागू करने के लिए बाध्य हो सकती है. ध्यान रखें कि साइड लोड किए गए ऐप्लिकेशन इस अनुमति पर दावा कर सकते हैं. साथ ही, Android 10 या उससे पहले के वर्शन वाले डिवाइसों पर QuickAccessWalletService
के डेटा का पूरा ऐक्सेस पा सकते हैं. ऐसा होने से रोकने के लिए, हमारा सुझाव है कि सेवा onCreate
में बिल्ड वर्शन की जांच करे और सेवा को सिर्फ़ Android 11 और उसके बाद के वर्शन वाले डिवाइसों पर चालू करे. होस्ट कार्ड इम्यूलेशन की पेमेंट सेवाएं देने के लिए ज़रूरी अनुमतियों के अलावा, ऐप्लिकेशन को कोई अन्य अनुमति नहीं चाहिए.
अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन, QuickAccessWalletService
को लागू या एक्सपोर्ट नहीं करता है, तो Wallet का क्विक ऐक्सेस यूज़र इंटरफ़ेस (यूआई) नहीं दिखता.
Android 12 में सेटिंग
लॉक स्क्रीन से क्विक ऐक्सेस वॉलेट को चालू या बंद करने के लिए, उपयोगकर्ता सेटिंग > डिसप्ले > लॉक स्क्रीन में जाकर, वॉलेट दिखाएं टॉगल का इस्तेमाल कर सकते हैं. शेड में वॉलेट को बंद करने के लिए, उपयोगकर्ताओं को क्विक सेटिंग शेड में मैन्युअल तरीके से बदलाव करना होगा.
पांचवीं इमेज. Settings में Lock screen पेज पर, Wallet का टॉगल दिखाएं.
Android 11 में सेटिंग
उपयोगकर्ता, सेटिंग ऐप्लिकेशन से Wallet को तुरंत ऐक्सेस करने की सुविधा बंद कर सकते हैं. सेटिंग पेज, सेटिंग > सिस्टम > जेस्चर > कार्ड और पास में मौजूद होता है.
पसंद के मुताबिक बनाएं
सिस्टम यूज़र इंटरफ़ेस (यूआई) में किसी अन्य जगह पर क्विक ऐक्सेस वॉलेट व्यू जोड़ें
क्विक ऐक्सेस Wallet यूज़र इंटरफ़ेस (यूआई) को सिस्टम प्लगिन के तौर पर बनाया गया है.
AOSP के लागू होने पर, इसे GlobalActionsDialog
(लंबे समय तक पावर बटन को दबाने पर दिखता है) में इस्तेमाल किया जाता है. हालांकि, इस सुविधा को किसी दूसरे जेस्चर के पीछे ले जाया जा सकता है. ऐसा तब तक किया जा सकता है, जब तक प्लग-इन इंटरफ़ेस में बताए गए समझौते का पालन किया जाता है.
public interface GlobalActionsPanelPlugin extends Plugin {
/** Invoked when the view is shown */
PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);
/** Callbacks for interacting with the view container */
interface Callbacks {
/** Dismisses the view */
void dismissGlobalActionsMenu();
/** Starts a PendingIntent, dismissing the keyguard if necessary. */
void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
}
/** Provides the Quick Access Wallet view */
interface PanelViewController {
/** Returns the QuickAccessWallet view, which may take any size */
View getPanelContent();
/** Invoked when the view is dismissed */
void onDismissed();
/** Invoked when the device is either locked or unlocked. */
void onDeviceLockStateChanged(boolean locked);
}
}
Wallet के क्विक ऐक्सेस यूज़र इंटरफ़ेस (यूआई) में GlobalActionsPanelPlugin
और PanelViewController
लागू किए गए हैं.
GlobalActionsDialog
com.android.systemui.Dependency
का इस्तेमाल करके, Wallet प्लग इन का इंस्टेंस पाता है:
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
के रेफ़रंस हटाएं.
डिफ़ॉल्ट कॉन्फ़िगरेशन सेट करना
Android 12
Android 12 या इसके बाद के वर्शन में, क्विक ऐक्सेस वाला Wallet हमेशा क्विक सेटिंग शेड में दिखता है. लॉक स्क्रीन पर, Wallet को तुरंत ऐक्सेस करने की सुविधा दिखने के लिए, यह ज़रूरी है कि आपने यहां दी गई सुरक्षित सेटिंग चालू की हो:
LOCKSCREEN_SHOW_WALLET
. इस सेटिंग से यह कंट्रोल किया जाता है कि लॉक स्क्रीन पर सबसे नीचे दाईं ओर, Wallet का क्विक ऐक्सेस आइकॉन दिखेगा या नहीं. यह सेटिंग डिफ़ॉल्ट रूप से true
पर सेट होती है. हालांकि, उपयोगकर्ता सेटिंग > डिसप्ले > लॉक स्क्रीन > Wallet दिखाएं में जाकर, इसे बंद कर सकता है.
Android 11
Android 11 में, क्विक ऐक्सेस वॉलेट को दो सुरक्षित सेटिंग के हिसाब से दिखाया जाता है:
GLOBAL_ACTIONS_PANEL_ENABLED
और GLOBAL_ACTIONS_PANEL_AVAILABLE
. AVAILABLE
सेटिंग से यह कंट्रोल होता है कि सेटिंग में जाकर, इस सुविधा को चालू और बंद किया जा सकता है या नहीं. WalletPluginService
ने इस सेटिंग को true
पर सेट किया है.
अगर QuickAccessWallet
को बिल्ड में शामिल नहीं किया गया है, तो सेटिंग false
पर बनी रहेगी. ENABLED
सेटिंग, उसी जगह पर डिफ़ॉल्ट रूप से true
पर सेट होती है. हालांकि, उपयोगकर्ता सेटिंग में जाकर इसे बंद कर सकता है. डिफ़ॉल्ट तरीके को बदलने के लिए,
WalletPluginService#enableFeatureInSettings
में बदलाव करें.
पुष्टि करें
क्विक ऐक्सेस वॉलेट को लागू करने की पुष्टि करने के लिए, सीटीएस और मैन्युअल जांच करें. प्लग इन में किए गए बदलावों के लिए, शामिल किए गए robolectric टेस्ट भी इस्तेमाल किए जाने चाहिए.
सीटीएस टेस्ट
cts/tests/quickaccesswallet
पर जाकर, सीटीएस टेस्ट चलाएं.
Android 12 के लिए मैन्युअल तरीके से जांच करना
क्विक ऐक्सेस वॉलेट की मुख्य सुविधाओं की जांच करने के लिए, एनएफ़सी पेमेंट टर्मिनल (असल या नकली) और एनएफ़सी पेमेंट ऐप्लिकेशन की ज़रूरत होती है, जो QuickAccessWalletService
(वॉलेट ऐप्लिकेशन) को लागू करता हो. मुख्य सुविधाओं की जांच करना ज़रूरी है. इनमें ये शामिल हैं: उपलब्धता, शून्य स्थिति, कार्ड चुनना, और लॉक स्क्रीन का व्यवहार.
उपलब्धता
- अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम नहीं करता है, तो क्विक ऐक्सेस वॉलेट को क्विक सेटिंग या लॉक स्क्रीन, दोनों में ऐक्सेस नहीं किया जा सकता.
- अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम करता है, तो क्विक ऐक्सेस वाला वॉलेट, क्विक सेटिंग शेड में ऐक्सेस किया जा सकता है.
- अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन में यह सुविधा काम करती है और
LOCKSCREEN_SHOW_WALLET
की सेटिंगtrue
पर सेट है, तो लॉक स्क्रीन पर क्विक ऐक्सेस Wallet को ऐक्सेस किया जा सकता है. - अगर डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम करता है और
LOCKSCREEN_SHOW_WALLET
सेटिंगfalse
है, तो लॉक स्क्रीन पर क्विक ऐक्सेस वॉलेट को ऐक्सेस नहीं किया जा सकता.
ज़ीरो स्टेट
अगर
QuickAccessWalletService
चालू है और एक्सपोर्ट किया गया है, लेकिन कोई कार्ड नहीं दिखाता है, तो शेड में टाइल उसी तरह दिखती है जैसा कि सातवें चित्र में उदाहरण के तौर पर दिखाया गया है. टाइल पर क्लिक करने से, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन खुलता है.सातवीं इमेज. शेड में मौजूद टाइल का उदाहरण, जिसमें एनएफ़सी से पेमेंट करने के लिए डिफ़ॉल्ट ऐप्लिकेशन दिखाया गया है.
आठवीं इमेज में दिखाए गए खाली स्टेटस व्यू पर क्लिक करने से, डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन खुलता है. खाली स्टेटस व्यू सिर्फ़ तब दिखता है, जब उपयोगकर्ता के वॉलेट में एक कार्ड बचे हो. साथ ही, कार्ड की जानकारी वाले पेज से कार्ड हटाकर, वॉलेट व्यू पर वापस जाया गया हो.
लॉक स्क्रीन पर, Wallet का आइकॉन दिखता है.
आठवीं इमेज. Wallet के क्विक ऐक्सेस यूज़र इंटरफ़ेस (यूआई) में, खाली स्टेटस व्यू.
शून्य से ज़्यादा वैल्यू
अगर Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड उपलब्ध हैं, तो शेड में मौजूद टाइल, इमेज 9 में दिखाई गई है.
नौवीं इमेज. Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड होने पर, टाइल की छाया में दिखने का उदाहरण.
टाइल पर क्लिक करने पर, कार्ड कैरसेल दिखता है.
लॉक स्क्रीन पर एक बटन दिखता है. इससे, क्विक ऐक्सेस वॉलेट खुलता है.
10वीं इमेज. Wallet के क्विक ऐक्सेस यूज़र इंटरफ़ेस (यूआई) में कार्ड दिख रहा है.
अगर दिखाया गया कार्ड एनएफ़सी से पेमेंट करने का तरीका दिखाता है, तो फ़ोन को एनएफ़सी पेमेंट टर्मिनल के सामने रखने से, पेमेंट के उसी तरीके का इस्तेमाल किया जाएगा. साथ ही, वॉलेट व्यू खारिज हो जाएगा.
किसी कार्ड पर क्लिक करने से, उस कार्ड से जुड़ी गतिविधि की ज़्यादा जानकारी वाली रिपोर्ट खुलती है.
अगर
QuickAccessWalletService
ने एक से ज़्यादा कार्ड दिए हैं, तो उपयोगकर्ता उन कार्ड के बीच स्वाइप कर सकता है.ओवरफ़्लो मेन्यू में एक एंट्री होती है: लॉक स्क्रीन की सेटिंग खोलें, ताकि उपयोगकर्ता, वॉलेट दिखाएं विकल्प बदल सके.
लॉक स्टेट टेस्ट
- अगर फ़ोन लॉक है, तो क्विक सेटिंग शेड में Wallet दिखता है. अगर डिफ़ॉल्ट पेमेंट ऐप्लिकेशन में कोई कार्ड मौजूद नहीं है, तो कार्ड जोड़ें के ब्यौरे के साथ दिखता है. अगर डिफ़ॉल्ट पेमेंट ऐप्लिकेशन में कार्ड मौजूद हैं, तो इस्तेमाल करने के लिए अनलॉक करें के ब्यौरे के साथ दिखता है.
- अगर फ़ोन लॉक है, तो लॉक स्क्रीन पर Wallet दिखने की सेटिंग को
Secure.LOCKSCREEN_SHOW_WALLET
सेटिंग से कंट्रोल किया जाता है. इस सेटिंग को 'सेटिंग' में जाकर कंट्रोल किया जा सकता है. - अगर फ़ोन लॉक है,
LOCKSCREEN_SHOW_WALLET
का मतलबfalse
है, और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन में कोई कार्ड मौजूद नहीं है, तो लॉक स्क्रीन पर वॉलेट नहीं दिखेगा. - अगर फ़ोन लॉक है,
LOCKSCREEN_SHOW_WALLET
true
है, और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन में कोई कार्ड मौजूद नहीं है, तो लॉक स्क्रीन पर Wallet नहीं दिखता. - अगर फ़ोन लॉक है,
LOCKSCREEN_SHOW_WALLET
true
है, और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन में कार्ड मौजूद हैं, तो लॉक स्क्रीन पर वॉलेट दिखता है. - लॉक स्क्रीन पर वॉलेट दिखने के दौरान फ़ोन अनलॉक करने पर, कार्ड की फिर से पुष्टि करने के लिए कहा जाता है. इस वजह से, कार्ड का कॉन्टेंट अलग दिख सकता है.
सुलभता की जांच
- TalkBack की मदद से, वॉलेट व्यू में बाईं और दाईं ओर स्वाइप करके नेविगेट किया जा सकता है. साथ ही, कार्ड के कॉन्टेंट की जानकारी सुनी जा सकती है.
- TalkBack की सुविधा चालू होने पर, बाईं और दाईं ओर स्वाइप करने पर, हर कार्ड एक-एक करके चुना जाता है. टॉकबैक उपयोगकर्ता, एनएफ़सी पेमेंट टर्मिनल पर, एनएफ़सी पेमेंट का तरीका चुन सकते हैं और उसका इस्तेमाल कर सकते हैं.
Android 11 के लिए मैन्युअल टेस्ट
Wallet को फटाफट ऐक्सेस करने की सुविधा की मुख्य सुविधाओं की जांच करने के लिए, एनएफ़सी पेमेंट टर्मिनल (असली या नकली) और एनएफ़सी पेमेंट ऐप्लिकेशन की ज़रूरत होती है. यह ऐप्लिकेशन, QuickAccessWalletService
(Wallet ऐप्लिकेशन) को लागू करता है. जिन मुख्य सुविधाओं की जांच की जानी चाहिए उनमें उपलब्धता, ज़ीरो स्टेट, कार्ड चुनना, और लॉक स्क्रीन के काम करने का तरीका शामिल है.
उपलब्धता
- अगर
GLOBAL_ACTIONS_PANEL_ENABLED
सेटिंगtrue
पर सेट है और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन, इस सुविधा के साथ काम करता है, तो क्विक ऐक्सेस वॉलेट को ऐक्सेस किया जा सकता है. - अगर
GLOBAL_ACTIONS_PANEL_ENABLED
सेटिंगfalse
है और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम करता है, तो क्विक ऐक्सेस वॉलेट ऐक्सेस नहीं किया जा सकता. - अगर
GLOBAL_ACTIONS_PANEL_ENABLED
सेटिंगtrue
पर सेट है और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम नहीं करता, तो क्विक ऐक्सेस वॉलेट ऐक्सेस नहीं किया जा सकता. - अगर
GLOBAL_ACTIONS_PANEL_ENABLED
सेटिंगfalse
पर सेट है और डिफ़ॉल्ट एनएफ़सी पेमेंट ऐप्लिकेशन इस सुविधा के साथ काम नहीं करता, तो क्विक ऐक्सेस वॉलेट ऐक्सेस नहीं किया जा सकता.
ज़ीरो स्टेट
- अगर
QuickAccessWalletService
चालू है और एक्सपोर्ट हो गया है, लेकिन कोई कार्ड उपलब्ध नहीं कराया गया है, तो क्विक ऐक्सेस वॉलेट यूज़र इंटरफ़ेस (यूआई) खाली स्थिति वाला व्यू दिखाता है. खाली स्टेटस व्यू पर क्लिक करने से, वॉलेट ऐप्लिकेशन खुलता है.
शून्य से ज़्यादा वैल्यू
अगर Wallet ऐप्लिकेशन में एक या उससे ज़्यादा कार्ड मौजूद हैं, तो वे 'Wallet को फटाफट ऐक्सेस करने की सुविधा' के यूज़र इंटरफ़ेस (यूआई) में दिखते हैं.
अगर दिखाया गया कार्ड, एनएफ़सी से पेमेंट करने का तरीका दिखाता है, तो फ़ोन को एनएफ़सी पेमेंट टर्मिनल के सामने रखने पर, उस पेमेंट के तरीके का इस्तेमाल किया जाता है और वॉलेट व्यू बंद हो जाता है.
किसी कार्ड पर क्लिक करने से, वॉलेट व्यू बंद हो जाता है और उस कार्ड की ज़्यादा जानकारी वाली गतिविधि खुल जाती है.
अगर
QuickAccessWalletService
ने एक से ज़्यादा कार्ड जोड़े हैं, तो वह एक कार्ड से दूसरे कार्ड पर स्वाइप कर सकता है.ओवरफ़्लो मेन्यू में दो एंट्री होती हैं: एक, Wallet ऐप्लिकेशन खोलने वाली और दूसरी, सेटिंग में कार्ड और पास दिखाएं स्क्रीन खोलने वाली.
लॉक स्टेट टेस्ट
- अगर फ़ोन लॉक है, तो Wallet के दिखने की सेटिंग को
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
सेटिंग से कंट्रोल किया जाता है. इस सेटिंग को 'सेटिंग' में जाकर कंट्रोल किया जा सकता है. - अगर फ़ोन लॉक है और
POWER_MENU_LOCK_SHOW_CONTENT
false
है, तो वॉलेट नहीं दिखता. - अगर फ़ोन लॉक है और
POWER_MENU_LOCK_SHOW_CONTENT
true
है, तो वॉलेट दिखता है. - लॉक स्क्रीन पर Wallet दिखने के दौरान फ़ोन अनलॉक करने पर, कार्ड के लिए फिर से अनुरोध किया जाता है. इस वजह से, कार्ड का कॉन्टेंट अलग दिख सकता है.
सुलभता की जांच
- TalkBack का इस्तेमाल करने वाले लोग, बाईं और दाईं ओर स्वाइप करके और कार्ड के कॉन्टेंट की जानकारी सुनकर, वॉलेट व्यू पर जा सकते हैं.
- TalkBack की सुविधा चालू होने पर बाईं और दाईं ओर स्वाइप करने से, हर कार्ड एक-एक करके चुना जाता है. TalkBack का इस्तेमाल करने वाले लोग, एनएफ़सी पेमेंट टर्मिनल पर एनएफ़सी पेमेंट का तरीका चुन सकते हैं और उसका इस्तेमाल कर सकते हैं.