Android 11 থেকে উপলব্ধ কুইক অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি ব্যবহারকারীকে পাওয়ার মেনু থেকে সরাসরি পেমেন্ট কার্ড এবং প্রাসঙ্গিক পাস অ্যাক্সেস করতে দেয়। প্রধান ব্যবহারের ক্ষেত্রে একটি NFC টার্মিনালে একটি লেনদেন সম্পাদন করার আগে উপযুক্ত অর্থপ্রদানের পদ্ধতি নির্বাচন করা এবং আসন্ন ইভেন্টগুলির জন্য দ্রুত ফ্লাইট এবং অন্যান্য পাস অ্যাক্সেস করা অন্তর্ভুক্ত।
Android 12 বা উচ্চতর সংস্করণে, চিত্র 1 এবং চিত্র 2-এ দেখানো শেড থেকে দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি উপলব্ধ।
অ্যান্ড্রয়েড 11-এ, চিত্র 3-এ দেখানো হিসাবে বৈশিষ্ট্যটি পাওয়ার মেনু থেকে পাওয়া যায়।
প্রয়োজনীয়তা
দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্য ব্যবহার করার জন্য আপনার ডিভাইসে অবশ্যই NFC থাকতে হবে৷ বৈশিষ্ট্যটি ডিফল্ট NFC পেমেন্ট অ্যাপের QuickAccessWalletService
এর সাথে আবদ্ধ, যার মানে ডিভাইসটিকে অবশ্যই NFC হোস্ট-ভিত্তিক কার্ড ইমুলেশন (HCE) সমর্থন করতে হবে৷
বৈশিষ্ট্য ওভারভিউ
দ্রুত অ্যাক্সেস ওয়ালেটের দুটি অংশ রয়েছে: দ্রুত অ্যাক্সেস ওয়ালেট UI এবং দ্রুত অ্যাক্সেস ওয়ালেট কার্ড প্রদানকারী৷
Android 12 বা উচ্চতর সংস্করণে, Wallet UI সিস্টেম UI-তে চলে এবং frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
এ অবস্থিত। অ্যান্ড্রয়েড 11-এ, platform/packages/apps/QuickAccessWallet
এ অবস্থিত Wallet UI, অবশ্যই ইনস্টল এবং সাদা তালিকাভুক্ত হতে হবে।
Quick Access Wallet কার্ড প্রদানকারী হল ডিফল্ট NFC পেমেন্ট অ্যাপ। ব্যবহারকারীদের একাধিক এনএফসি পেমেন্ট অ্যাপ একই সাথে ইনস্টল করা থাকতে পারে, তবে শুধুমাত্র ডিফল্ট এনএফসি পেমেন্ট অ্যাপ পাওয়ার মেনুতে কার্ড দেখাতে পারে। কোন NFC পেমেন্ট অ্যাপটি প্রাথমিকভাবে ডিফল্ট হিসেবে সেট করা আছে তা আপনি নির্দিষ্ট করতে পারেন, তবে ব্যবহারকারীরা সেটিংসে একটি ভিন্ন অ্যাপ নির্বাচন করতে পারেন। শুধুমাত্র একটি NFC পেমেন্ট অ্যাপ ইনস্টল করা থাকলে, এটি স্বয়ংক্রিয়ভাবে ডিফল্ট হয়ে যায় ( CardEmulationManager
দেখুন)।
বাস্তবায়ন
দ্রুত অ্যাক্সেস ওয়ালেট UI-তে কার্ড সরবরাহ করতে, NFC অর্থপ্রদান অ্যাপগুলিকে অবশ্যই QuickAccessWalletService
প্রয়োগ করতে হবে৷ অর্থপ্রদানের অ্যাপগুলিতে অবশ্যই পরিষেবাটির বিজ্ঞাপনের একটি ম্যানিফেস্ট এন্ট্রি অন্তর্ভুক্ত থাকতে হবে৷
শুধুমাত্র সিস্টেম UI যে QuickAccessWalletService
এর সাথে আবদ্ধ হতে পারে তা নিশ্চিত করতে, NFC পেমেন্ট অ্যাপের অবশ্যই android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
অনুমতি প্রয়োজন। এই অনুমতির প্রয়োজন নিশ্চিত করে যে শুধুমাত্র সিস্টেম UI 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
এর ইভেন্টের ধরন সহ কল করার চেষ্টা করা উচিত। . এর ফলে দ্রুত অ্যাক্সেস ওয়ালেট UI খারিজ হয়ে যায়, এইভাবে ব্যবহারকারীকে অর্থপ্রদানের কার্যকলাপের একটি বাধাহীন দৃশ্যের অনুমতি দেয়।
QuickAccessWalletService
বাস্তবায়নের অতিরিক্ত ডকুমেন্টেশনের জন্য, QuickAccessWalletService
এবং TestQuickAccessWalletService
CTS পরীক্ষা দেখুন।
Android 11-এ দ্রুত অ্যাক্সেস ওয়ালেট UI সক্ষম করুন
অ্যান্ড্রয়েড 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 পেমেন্ট অ্যাপটি নির্দিষ্ট করুন।
ডিফল্ট NFC পেমেন্ট অ্যাপকে দ্রুত অ্যাক্সেস ওয়ালেটে কার্ড সরবরাহ করতে QuickAccessWalletService
প্রকাশ করতে হবে। যদি ডিফল্ট NFC পেমেন্ট অ্যাপ এই পরিষেবাটি রপ্তানি না করে, তাহলে ওয়ালেট UI লুকানো থাকে।
QuickAccessWalletService বাস্তবায়নের বিবরণ
QuickAccessWalletService
তিনটি বিমূর্ত পদ্ধতি রয়েছে যা অবশ্যই প্রয়োগ করতে হবে: onWalletCardsRequested
, onWalletCardSelected
এবং onWalletDismissed
। নিচের সিকোয়েন্স ডায়াগ্রামটি একটি কল সিকোয়েন্সকে চিত্রিত করে যখন দ্রুত অ্যাক্সেস ওয়ালেটটি NFC পেমেন্টের ঠিক আগে দেখা হয়।
কুইক অ্যাকসেস ওয়ালেটের সমস্ত ভিউ একটি NFC পেমেন্ট দ্বারা অনুসরণ করা হয় না, কিন্তু উপরের চিত্র 4 QuickAccessWalletService
এর সমস্ত ক্ষমতাকে চিত্রিত করে৷ এই উদাহরণে, Quick Access Wallet কার্ড প্রদানকারী নীল রঙে বর্ণিত উপাদানগুলিকে প্রয়োগ করে৷ এটি ধরে নেওয়া হয় যে পেমেন্ট কার্ডগুলি ডিভাইসে একটি ডাটাবেসে সংরক্ষণ করা হয় এবং PaymentCardManager
নামে একটি ইন্টারফেসের মাধ্যমে অ্যাক্সেস করা হয়। এটি আরও অনুমান করা হয় যে PaymentActivity
নামক একটি কার্যকলাপ একটি NFC পেমেন্টের ফলাফল প্রদর্শন করে। প্রবাহটি নিম্নরূপ হয়:
- ব্যবহারকারী দ্রুত অ্যাক্সেস ওয়ালেট আনতে একটি অঙ্গভঙ্গি সম্পাদন করে।
কুইক অ্যাকসেস ওয়ালেট UI (সিস্টেম UI-এর অংশ) ডিফল্ট NFC পেমেন্ট অ্যাপ
QuickAccessWalletService
রপ্তানি করে কিনা তা দেখতে প্যাকেজ ম্যানেজারকে পরীক্ষা করে।- পরিষেবাটি রপ্তানি করা না হলে, দ্রুত অ্যাক্সেস ওয়ালেটটি প্রদর্শিত হয় না৷
দ্রুত অ্যাক্সেস ওয়ালেট UI
QuickAccessWalletService
এর সাথে আবদ্ধ হয় এবংonWalletCardsRequested
কল করে। এই পদ্ধতিটি প্রদান করা যেতে পারে এমন কার্ডের সংখ্যা এবং আকার এবং একটি কলব্যাক সম্পর্কে ডেটা ধারণকারী একটি অনুরোধ বস্তু নেয়। কলব্যাক একটি ব্যাকগ্রাউন্ড থ্রেড থেকে কল করা যেতে পারে।QuickAccessWalletService
যে কার্ডগুলি দেখাতে চায় সেগুলি গণনা করে, তারপর প্রদত্ত কলব্যাকেonSuccess
পদ্ধতিতে কল করে৷ এটি সুপারিশ করা হয় যে পরিষেবাটি একটি ব্যাকগ্রাউন্ড থ্রেডে এই ক্রিয়াগুলি সম্পাদন করে৷কার্ডগুলি প্রদর্শিত হওয়ার সাথে সাথে, সিস্টেম UI
QuickAccessWalletService
অবহিত করে যে প্রথম কার্ডটিonWalletCardSelected
কল করে নির্বাচন করা হয়েছে।- ব্যবহারকারী যখনই একটি নতুন কার্ড নির্বাচন করে তখনই
onWalletCardSelected
বলা হয়। - বর্তমানে নির্বাচিত কার্ড পরিবর্তন না করলেও
onWalletCardSelected
কল করা হতে পারে।
- ব্যবহারকারী যখনই একটি নতুন কার্ড নির্বাচন করে তখনই
যখন ব্যবহারকারী দ্রুত অ্যাক্সেস ওয়ালেট খারিজ করে, তখন সিস্টেম UI কল করে
QuickAccessWalletService
অবহিত করেonWalletDismissed
.
উপরের উদাহরণে, মানিব্যাগটি প্রদর্শিত হওয়ার সময় ব্যবহারকারী ফোনটিকে একটি NFC পেমেন্ট টার্মিনালের পরিসরে নিয়ে আসে। NFC পেমেন্ট পরিচালনার একটি মূল উপাদান হল HostApduService
, যা NFC রিডার দ্বারা প্রদত্ত APDUগুলি প্রক্রিয়া করার জন্য প্রয়োগ করা আবশ্যক (আরও তথ্যের জন্য, হোস্ট-ভিত্তিক কার্ড এমুলেশন দেখুন)। এটি অনুমান করা হয় যে পেমেন্ট অ্যাপটি NFC টার্মিনালের সাথে মিথস্ক্রিয়াটির অগ্রগতি এবং ফলাফল প্রদর্শন করতে একটি কার্যকলাপ শুরু করে। যাইহোক, দ্রুত অ্যাক্সেস ওয়ালেট UI অ্যাপ উইন্ডোর উপরে প্রদর্শিত হয়, যার অর্থ অর্থপ্রদানের কার্যকলাপ দ্রুত অ্যাক্সেস ওয়ালেট UI দ্বারা অস্পষ্ট হয়। এটি সংশোধন করতে, অ্যাপটিকে অবশ্যই সিস্টেম UI-কে অবহিত করতে হবে যে দ্রুত অ্যাক্সেস ওয়ালেট UI খারিজ করা উচিত। এটি আবদ্ধ 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.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
অনুমতির প্রয়োজন হবে যা Android 11-এ প্রবর্তিত হয়েছে। এটি সিস্টেম UI দ্বারা ধারণ করা একটি স্বাক্ষর-স্তরের অনুমতি, যার মানে হল যে শুধুমাত্র সিস্টেম UI প্রক্রিয়াটি QuickAccessWalletService
এর বাস্তবায়নের সাথে আবদ্ধ হতে পারে। সচেতন থাকুন যে সাইড-লোড করা অ্যাপগুলি এই অনুমতি দাবি করতে পারে এবং Android 10 বা তার কম সংস্করণে চলমান ডিভাইসগুলিতে QuickAccessWalletService
ডেটাতে সম্পূর্ণ অ্যাক্সেস পেতে পারে। এটি প্রতিরোধ করার জন্য, এটি সুপারিশ করা হয় যে পরিষেবাটি onCreate
এ বিল্ড সংস্করণটি পরীক্ষা করে দেখুন এবং শুধুমাত্র Android 11 এবং তার পরবর্তী সংস্করণে চলমান ডিভাইসগুলিতে পরিষেবাটি সক্ষম করুন৷ হোস্ট কার্ড এমুলেশন পেমেন্ট পরিষেবা প্রদানের জন্য প্রয়োজনীয় এর বাইরে অন্য কোনো অ্যাপের অনুমতির প্রয়োজন নেই।
যদি ডিফল্ট NFC পেমেন্ট অ্যাপ QuickAccessWalletService
বাস্তবায়ন বা রপ্তানি না করে, তাহলে দ্রুত অ্যাক্সেস ওয়ালেট UI প্রদর্শিত হয় না।
Android 12-এ সেটিংস
লক স্ক্রীন থেকে দ্রুত অ্যাক্সেস ওয়ালেট সক্ষম বা নিষ্ক্রিয় করতে, ব্যবহারকারীরা সেটিংস > প্রদর্শন > লক স্ক্রীনে ওয়ালেট দেখান টগল ব্যবহার করতে পারেন। ছায়ায় মানিব্যাগ নিষ্ক্রিয় করতে, ব্যবহারকারীদের অবশ্যই দ্রুত সেটিংস ছায়ায় ম্যানুয়ালি সম্পাদনা করতে হবে।
চিত্র 5. সেটিংসে লক স্ক্রীন পৃষ্ঠায় ওয়ালেট টগল দেখান৷
Android 11-এ সেটিংস
ব্যবহারকারীরা সেটিংস অ্যাপ থেকে দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি বন্ধ করতে পারেন। সেটিংস পৃষ্ঠাটি সেটিংস > সিস্টেম > অঙ্গভঙ্গি > কার্ড এবং পাসে পাওয়া যায়।
কাস্টমাইজেশন
সিস্টেম UI-তে অন্য অবস্থানে দ্রুত অ্যাক্সেস ওয়ালেট ভিউ যোগ করুন
দ্রুত অ্যাক্সেস ওয়ালেট UI একটি সিস্টেম প্লাগইন হিসাবে তৈরি করা হয়েছে৷ যদিও 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);
}
}
দ্রুত অ্যাক্সেস ওয়ালেট UI 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
লক্ষ্য বাদ দিন। পাওয়ার মেনু থেকে দ্রুত অ্যাক্সেস ওয়ালেট সরাতে কিন্তু একটি ভিন্ন সিস্টেম UI প্রদত্ত ভিউতে যোগ করতে, বিল্ড টার্গেট অন্তর্ভুক্ত করুন এবং GlobalActionsImpl
থেকে GlobalActionsPanelPlugin
এর রেফারেন্সগুলি সরান।
ডিফল্ট কনফিগারেশন সেট করুন
অ্যান্ড্রয়েড 12
Android 12 বা উচ্চতর সংস্করণে, দ্রুত সেটিংস শেডে দ্রুত অ্যাক্সেস ওয়ালেট সর্বদা দৃশ্যমান। লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেটের দৃশ্যমানতা নিম্নলিখিত সুরক্ষিত সেটিং দ্বারা গেট করা হয়েছে: LOCKSCREEN_SHOW_WALLET
। লক স্ক্রিনের নীচে ডানদিকে দ্রুত অ্যাক্সেস ওয়ালেট আইকনটি দেখানো হবে কিনা তা এই সেটিং নিয়ন্ত্রণ করে৷ এই সেটিংটি ডিফল্টরূপে true
হিসাবে সেট করা থাকে, তবে ব্যবহারকারী সেটিংস > প্রদর্শন > লক স্ক্রীন > ওয়ালেট দেখান এ বন্ধ করে দিতে পারেন।
অ্যান্ড্রয়েড 11
Android 11-এ, দ্রুত অ্যাক্সেস ওয়ালেট দৃশ্যমানতা দুটি সুরক্ষিত সেটিংস দ্বারা গেট করা হয়েছে: GLOBAL_ACTIONS_PANEL_ENABLED
এবং GLOBAL_ACTIONS_PANEL_AVAILABLE
। AVAILABLE
সেটিংস সেটিংসে বৈশিষ্ট্যটি চালু বা বন্ধ করা যাবে কিনা তা নিয়ন্ত্রণ করে৷ এই সেটিংটি WalletPluginService
দ্বারা true
হিসাবে সেট করা হয়েছে৷ যদি QuickAccessWallet
বিল্ডে অন্তর্ভুক্ত না হয়, তাহলে সেটিংটি false
থেকে যায়। ENABLED
সেটিং একই জায়গায় ডিফল্টরূপে true
হিসাবে সেট করা আছে, কিন্তু সেটিংসে ব্যবহারকারী দ্বারা বন্ধ করা যেতে পারে৷ ডিফল্ট আচরণ পরিবর্তন করতে, WalletPluginService#enableFeatureInSettings
সংশোধন করুন।
বৈধতা
আপনার দ্রুত অ্যাক্সেস ওয়ালেটের বাস্তবায়ন যাচাই করতে, CTS এবং ম্যানুয়াল পরীক্ষা চালান। প্লাগইনের পরিবর্তনের জন্য অন্তর্ভুক্ত রোবোলেক্ট্রিক পরীক্ষাগুলিও অনুশীলন করা উচিত।
CTS পরীক্ষা
cts/tests/quickaccesswallet
এ অবস্থিত CTS পরীক্ষা চালান।
Android 12 এর জন্য ম্যানুয়াল পরীক্ষা
দ্রুত অ্যাক্সেস ওয়ালেটের মূল বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য একটি NFC পেমেন্ট টার্মিনাল (আসল বা নকল) এবং একটি NFC পেমেন্ট অ্যাপ প্রয়োজন যা QuickAccessWalletService
(ওয়ালেট অ্যাপ) প্রয়োগ করে৷ মূল বৈশিষ্ট্যগুলি যা অবশ্যই পরীক্ষা করা উচিত তার মধ্যে রয়েছে: প্রাপ্যতা, শূন্য অবস্থা, কার্ড নির্বাচন এবং লক স্ক্রীন আচরণ।
প্রাপ্যতা
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন না করে, তাহলে দ্রুত সেটিংস বা লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য নয়।
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে, তাহলে দ্রুত সেটিংস শেডে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য।
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে এবং যদি
LOCKSCREEN_SHOW_WALLET
সেটিংসটিtrue
হয়, তাহলে দ্রুত অ্যাক্সেস ওয়ালেটটি লক স্ক্রিনে অ্যাক্সেসযোগ্য। - যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে এবং যদি
LOCKSCREEN_SHOW_WALLET
সেটিংসfalse
হয়, তাহলে লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য নয়৷
শূন্য রাষ্ট্র
যদি
QuickAccessWalletService
সক্ষম করা থাকে এবং রপ্তানি করা হয় কিন্তু কোনো কার্ড প্রদান না করে, তাহলে চিত্র 7-এর উদাহরণে দেখানো শেডের টাইলটি প্রদর্শিত হবে। টাইলটিতে ক্লিক করলে ডিফল্ট NFC পেমেন্ট অ্যাপটি খোলে।চিত্র 7. ছায়ায় টাইলের উদাহরণ যা ডিফল্ট NFC পেমেন্ট অ্যাপ দেখাচ্ছে।
চিত্র 8-এ দেখানো খালি স্টেট ভিউতে ক্লিক করলে ডিফল্ট NFC পেমেন্ট অ্যাপ খোলে। এই খালি স্টেট ভিউটি তখনই প্রদর্শিত হয় যখন ব্যবহারকারীর ওয়ালেটে একটি কার্ড অবশিষ্ট থাকে, কার্ডের বিশদ পৃষ্ঠা থেকে কার্ডটি সরিয়ে দেয় এবং তারপরে ওয়ালেট ভিউতে ফিরে যায়।
লক স্ক্রিন ওয়ালেট আইকন দেখায়।
চিত্র 8. দ্রুত অ্যাক্সেস ওয়ালেট UI-তে খালি স্টেট ভিউ।
নন-জিরো স্টেট
যদি ওয়ালেট অ্যাপটি এক বা একাধিক কার্ড প্রদান করে, তাহলে চিত্র 9-এ দেখানো টাইলটি ছায়ায় প্রদর্শিত হবে।
চিত্র 9. ওয়ালেট অ্যাপে এক বা একাধিক কার্ড থাকলে ছায়ায় টাইলের উদাহরণ।
টাইলের উপর ক্লিক করা একটি কার্ড ক্যারোজেল দেখায়।
লক স্ক্রীন একটি বোতাম দেখায় যা দ্রুত অ্যাক্সেস ওয়ালেট খোলে।
চিত্র 10. একটি কার্ডের সাথে দ্রুত অ্যাক্সেস ওয়ালেট UI।
যদি প্রদর্শিত কার্ডটি একটি NFC পেমেন্ট পদ্ধতির প্রতিনিধিত্ব করে, তাহলে একটি NFC পেমেন্ট টার্মিনালে ফোনটি ধরে রাখলে সেই অর্থপ্রদানের পদ্ধতিটি ব্যবহার করা হবে এবং ওয়ালেট ভিউ খারিজ হয়ে যাবে।
একটি প্রদর্শিত কার্ডে ক্লিক করা সেই কার্ডের জন্য বিস্তারিত কার্যকলাপ খোলে।
QuickAccessWalletService
দ্বারা একাধিক কার্ড প্রদান করা হলে, ব্যবহারকারী কার্ডগুলির মধ্যে সোয়াইপ করতে সক্ষম।ওভারফ্লো মেনুতে একটি এন্ট্রি রয়েছে: লক স্ক্রিন সেটিংস খুলুন যাতে ব্যবহারকারী ওয়ালেট দেখান বিকল্পটি পরিবর্তন করতে পারেন।
লক রাষ্ট্র পরীক্ষা
- ফোনটি লক করা থাকলে, ডিফল্ট পেমেন্ট অ্যাপে কোনো কার্ড না থাকলে একটি কার্ড যোগ করুন , অথবা ডিফল্ট অর্থপ্রদান অ্যাপে কার্ড বিদ্যমান থাকলে ব্যবহার করার জন্য আনলক করার বিবরণ সহ দ্রুত সেটিংস শেডে ওয়ালেটটি দৃশ্যমান হয়।
- ফোনটি লক করা থাকলে, লক স্ক্রিনে ওয়ালেটের দৃশ্যমানতা
Secure.LOCKSCREEN_SHOW_WALLET
সেটিংস দ্বারা নিয়ন্ত্রিত হয়, যা সেটিংসে নিয়ন্ত্রিত হয়৷ - ফোনটি লক করা থাকলে,
LOCKSCREEN_SHOW_WALLET
false
, এবং ডিফল্ট NFC পেমেন্ট অ্যাপে কোনও কার্ড বিদ্যমান না থাকলে, লক স্ক্রিনে ওয়ালেটটি প্রদর্শিত হয় না৷ - ফোনটি লক করা থাকলে,
LOCKSCREEN_SHOW_WALLET
true
, এবং ডিফল্ট NFC পেমেন্ট অ্যাপে কোনো কার্ড বিদ্যমান না থাকলে, মানিব্যাগটি লক স্ক্রিনে প্রদর্শিত হয় না। - যদি ফোনটি লক করা থাকে,
LOCKSCREEN_SHOW_WALLET
true
, এবং কার্ডগুলি ডিফল্ট NFC অর্থপ্রদান অ্যাপে বিদ্যমান থাকে, মানিব্যাগটি লক স্ক্রিনে প্রদর্শিত হয়৷ - লক স্ক্রিনে মানিব্যাগটি প্রদর্শিত হওয়ার সময় ফোনটি আনলক করার ফলে কার্ডগুলি প্রয়োজন হয়, যার ফলে কার্ডের বিভিন্ন সামগ্রী হতে পারে৷
অ্যাক্সেসিবিলিটি পরীক্ষা
- টকব্যাক ব্যবহারকারীরা বাম এবং ডানদিকে সোয়াইপ করে এবং কার্ডের বিষয়বস্তুর বিবরণ শুনে ওয়ালেট ভিউ নেভিগেট করতে পারেন।
- টকব্যাক সক্ষম করে বাম এবং ডানদিকে সোয়াইপ করলে প্রতিটি কার্ড পালাক্রমে নির্বাচন করে। টকব্যাক ব্যবহারকারীরা একটি NFC পেমেন্ট টার্মিনালে একটি NFC পেমেন্ট পদ্ধতি নির্বাচন এবং ব্যবহার করতে পারেন।
Android 11 এর জন্য ম্যানুয়াল পরীক্ষা
দ্রুত অ্যাক্সেস ওয়ালেটের মূল বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য একটি NFC পেমেন্ট টার্মিনাল (আসল বা নকল) এবং একটি NFC পেমেন্ট অ্যাপ প্রয়োজন যা QuickAccessWalletService
(ওয়ালেট অ্যাপ) প্রয়োগ করে৷ মূল বৈশিষ্ট্যগুলি যা অবশ্যই পরীক্ষা করা উচিত তার মধ্যে রয়েছে উপলব্ধতা, শূন্য অবস্থা, কার্ড নির্বাচন এবং লক স্ক্রীন আচরণ।
প্রাপ্যতা
- যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংসটিtrue
হয় এবং ডিফল্ট NFC অর্থপ্রদান অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে, তবে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য৷ - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংসfalse
হয় এবং ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে, তাহলে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য নয় ৷ - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংসটিtrue
হয় এবং ডিফল্ট NFC অর্থপ্রদান অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন না করে , তাহলে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য নয় ৷ - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংসfalse
হয় এবং ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন না করে , তাহলে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য নয় ৷
শূন্য রাষ্ট্র
- যদি
QuickAccessWalletService
সক্ষম করা থাকে এবং রপ্তানি করা হয় কিন্তু কোনো কার্ড প্রদান না করে, তাহলে দ্রুত অ্যাক্সেস ওয়ালেট UI খালি অবস্থা প্রদর্শন করে। খালি স্টেট ভিউতে ক্লিক করলে ওয়ালেট অ্যাপ খোলে।
নন-জিরো স্টেট
যদি ওয়ালেট অ্যাপ এক বা একাধিক কার্ড সরবরাহ করে, কার্ডগুলি দ্রুত অ্যাক্সেস ওয়ালেট UI-তে প্রদর্শিত হয়।
যদি প্রদর্শিত কার্ডটি একটি NFC পেমেন্ট পদ্ধতির প্রতিনিধিত্ব করে, তাহলে একটি NFC পেমেন্ট টার্মিনালে ফোনটি ধরে রাখলে সেই অর্থপ্রদানের পদ্ধতিটি ব্যবহার করা হবে এবং ওয়ালেট ভিউ খারিজ হয়ে যাবে।
প্রদর্শিত কার্ডে ক্লিক করলে ওয়ালেট ভিউ খারিজ হয়ে যায় এবং সেই কার্ডের জন্য বিস্তারিত কার্যকলাপ খুলে যায়।
QuickAccessWalletService
দ্বারা একাধিক কার্ড প্রদান করা হলে, ব্যবহারকারী কার্ডগুলির মধ্যে সোয়াইপ করতে সক্ষম।ওভারফ্লো মেনুতে দুটি এন্ট্রি রয়েছে: একটি যেটি ওয়ালেট অ্যাপটি খোলে এবং একটি যা সেটিংসে কার্ড দেখায় এবং স্ক্রিন পাস করে ।
লক রাষ্ট্র পরীক্ষা
- ফোনটি লক করা থাকলে, ওয়ালেটের দৃশ্যমানতা
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
দ্বারা নিয়ন্ত্রিত হয়।Secure.POWER_MENU_LOCK_SHOW_CONTENT সেটিংস, যা সেটিংসে নিয়ন্ত্রণ করা যেতে পারে। - ফোনটি লক করা থাকলে এবং
POWER_MENU_LOCK_SHOW_CONTENT
false
হলে, ওয়ালেটটি প্রদর্শিত হয় না৷ - ফোনটি লক করা থাকলে এবং
POWER_MENU_LOCK_SHOW_CONTENT
true
হলে, ওয়ালেটটি প্রদর্শিত হয়৷ - লক স্ক্রিনে মানিব্যাগটি প্রদর্শিত হওয়ার সময় ফোনটি আনলক করার ফলে কার্ডগুলি পুনরায় জিজ্ঞাসা করা হয়, যার ফলে কার্ডের বিষয়বস্তু ভিন্ন হতে পারে।
অ্যাক্সেসিবিলিটি পরীক্ষা
- টকব্যাক ব্যবহারকারীরা বাম এবং ডানদিকে সোয়াইপ করে এবং কার্ডের বিষয়বস্তু বর্ণনা শুনে ওয়ালেট ভিউ নেভিগেট করতে পারেন।
- টকব্যাক সক্ষম করে বাম এবং ডানদিকে সোয়াইপ করলে প্রতিটি কার্ড পালাক্রমে নির্বাচন করে। টকব্যাক ব্যবহারকারীরা একটি NFC পেমেন্ট টার্মিনালে একটি NFC পেমেন্ট পদ্ধতি নির্বাচন এবং ব্যবহার করতে পারেন।
Android 11 থেকে উপলব্ধ কুইক অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি ব্যবহারকারীকে পাওয়ার মেনু থেকে সরাসরি পেমেন্ট কার্ড এবং প্রাসঙ্গিক পাস অ্যাক্সেস করতে দেয়। প্রধান ব্যবহারের ক্ষেত্রে একটি NFC টার্মিনালে একটি লেনদেন সম্পাদন করার আগে উপযুক্ত অর্থপ্রদানের পদ্ধতি নির্বাচন করা এবং আসন্ন ইভেন্টগুলির জন্য দ্রুত ফ্লাইট এবং অন্যান্য পাস অ্যাক্সেস করা অন্তর্ভুক্ত।
Android 12 বা উচ্চতর সংস্করণে, চিত্র 1 এবং চিত্র 2-এ দেখানো শেড থেকে দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি উপলব্ধ।
অ্যান্ড্রয়েড 11-এ, চিত্র 3-এ দেখানো হিসাবে বৈশিষ্ট্যটি পাওয়ার মেনু থেকে পাওয়া যায়।
প্রয়োজনীয়তা
দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্য ব্যবহার করার জন্য আপনার ডিভাইসে অবশ্যই NFC থাকতে হবে৷ বৈশিষ্ট্যটি ডিফল্ট NFC পেমেন্ট অ্যাপের QuickAccessWalletService
এর সাথে আবদ্ধ, যার মানে ডিভাইসটিকে অবশ্যই NFC হোস্ট-ভিত্তিক কার্ড ইমুলেশন (HCE) সমর্থন করতে হবে৷
বৈশিষ্ট্য ওভারভিউ
দ্রুত অ্যাক্সেস ওয়ালেটের দুটি অংশ রয়েছে: দ্রুত অ্যাক্সেস ওয়ালেট UI এবং দ্রুত অ্যাক্সেস ওয়ালেট কার্ড প্রদানকারী৷
Android 12 বা উচ্চতর সংস্করণে, Wallet UI সিস্টেম UI-তে চলে এবং frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
এ অবস্থিত। অ্যান্ড্রয়েড 11-এ, platform/packages/apps/QuickAccessWallet
এ অবস্থিত Wallet UI, অবশ্যই ইনস্টল এবং সাদা তালিকাভুক্ত হতে হবে।
Quick Access Wallet কার্ড প্রদানকারী হল ডিফল্ট NFC পেমেন্ট অ্যাপ। ব্যবহারকারীদের একাধিক এনএফসি পেমেন্ট অ্যাপ একই সাথে ইনস্টল করা থাকতে পারে, তবে শুধুমাত্র ডিফল্ট এনএফসি পেমেন্ট অ্যাপ পাওয়ার মেনুতে কার্ড দেখাতে পারে। কোন NFC পেমেন্ট অ্যাপটি প্রাথমিকভাবে ডিফল্ট হিসেবে সেট করা আছে তা আপনি নির্দিষ্ট করতে পারেন, তবে ব্যবহারকারীরা সেটিংসে একটি ভিন্ন অ্যাপ নির্বাচন করতে পারেন। শুধুমাত্র একটি NFC পেমেন্ট অ্যাপ ইনস্টল করা থাকলে, এটি স্বয়ংক্রিয়ভাবে ডিফল্ট হয়ে যায় ( CardEmulationManager
দেখুন)।
বাস্তবায়ন
দ্রুত অ্যাক্সেস ওয়ালেট UI-তে কার্ড সরবরাহ করতে, NFC অর্থপ্রদান অ্যাপগুলিকে অবশ্যই QuickAccessWalletService
প্রয়োগ করতে হবে৷ অর্থপ্রদানের অ্যাপগুলিতে অবশ্যই পরিষেবাটির বিজ্ঞাপনের একটি ম্যানিফেস্ট এন্ট্রি অন্তর্ভুক্ত থাকতে হবে৷
শুধুমাত্র সিস্টেম UI যে QuickAccessWalletService
এর সাথে আবদ্ধ হতে পারে তা নিশ্চিত করতে, NFC পেমেন্ট অ্যাপের অবশ্যই android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
অনুমতি প্রয়োজন। এই অনুমতির প্রয়োজন নিশ্চিত করে যে শুধুমাত্র সিস্টেম UI 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
এর ইভেন্টের ধরন সহ কল করার চেষ্টা করা উচিত। . এর ফলে দ্রুত অ্যাক্সেস ওয়ালেট UI খারিজ হয়ে যায়, এইভাবে ব্যবহারকারীকে অর্থপ্রদানের কার্যকলাপের একটি বাধাহীন দৃশ্যের অনুমতি দেয়।
QuickAccessWalletService
বাস্তবায়নের অতিরিক্ত ডকুমেন্টেশনের জন্য, QuickAccessWalletService
এবং TestQuickAccessWalletService
CTS পরীক্ষা দেখুন।
Android 11-এ দ্রুত অ্যাক্সেস ওয়ালেট UI সক্ষম করুন
অ্যান্ড্রয়েড 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 পেমেন্ট অ্যাপটি নির্দিষ্ট করুন।
ডিফল্ট NFC পেমেন্ট অ্যাপকে দ্রুত অ্যাক্সেস ওয়ালেটে কার্ড সরবরাহ করতে QuickAccessWalletService
প্রকাশ করতে হবে। যদি ডিফল্ট NFC পেমেন্ট অ্যাপ এই পরিষেবাটি রপ্তানি না করে, তাহলে ওয়ালেট UI লুকানো থাকে।
QuickAccessWalletService বাস্তবায়নের বিবরণ
QuickAccessWalletService
তিনটি বিমূর্ত পদ্ধতি রয়েছে যা অবশ্যই প্রয়োগ করতে হবে: onWalletCardsRequested
, onWalletCardSelected
এবং onWalletDismissed
। নিচের সিকোয়েন্স ডায়াগ্রামটি একটি কল সিকোয়েন্সকে চিত্রিত করে যখন দ্রুত অ্যাক্সেস ওয়ালেটটি NFC পেমেন্টের ঠিক আগে দেখা হয়।
কুইক অ্যাকসেস ওয়ালেটের সমস্ত ভিউ একটি NFC পেমেন্ট দ্বারা অনুসরণ করা হয় না, কিন্তু উপরের চিত্র 4 QuickAccessWalletService
এর সমস্ত ক্ষমতাকে চিত্রিত করে৷ এই উদাহরণে, Quick Access Wallet কার্ড প্রদানকারী নীল রঙে বর্ণিত উপাদানগুলিকে প্রয়োগ করে৷ এটি ধরে নেওয়া হয় যে পেমেন্ট কার্ডগুলি ডিভাইসে একটি ডাটাবেসে সংরক্ষণ করা হয় এবং PaymentCardManager
নামে একটি ইন্টারফেসের মাধ্যমে অ্যাক্সেস করা হয়। এটি আরও অনুমান করা হয় যে PaymentActivity
নামক একটি কার্যকলাপ একটি NFC পেমেন্টের ফলাফল প্রদর্শন করে। প্রবাহটি নিম্নরূপ হয়:
- ব্যবহারকারী দ্রুত অ্যাক্সেস ওয়ালেট আনতে একটি অঙ্গভঙ্গি সম্পাদন করে।
কুইক অ্যাকসেস ওয়ালেট UI (সিস্টেম UI-এর অংশ) ডিফল্ট NFC পেমেন্ট অ্যাপ
QuickAccessWalletService
রপ্তানি করে কিনা তা দেখতে প্যাকেজ ম্যানেজারকে পরীক্ষা করে।- পরিষেবাটি রপ্তানি করা না হলে, দ্রুত অ্যাক্সেস ওয়ালেটটি প্রদর্শিত হয় না৷
দ্রুত অ্যাক্সেস ওয়ালেট UI
QuickAccessWalletService
এর সাথে আবদ্ধ হয় এবংonWalletCardsRequested
কল করে। এই পদ্ধতিটি প্রদান করা যেতে পারে এমন কার্ডের সংখ্যা এবং আকার এবং একটি কলব্যাক সম্পর্কে ডেটা ধারণকারী একটি অনুরোধ বস্তু নেয়। কলব্যাক একটি ব্যাকগ্রাউন্ড থ্রেড থেকে কল করা যেতে পারে।QuickAccessWalletService
যে কার্ডগুলি দেখাতে চায় সেগুলি গণনা করে, তারপর প্রদত্ত কলব্যাকেonSuccess
পদ্ধতিতে কল করে৷ এটি সুপারিশ করা হয় যে পরিষেবাটি একটি ব্যাকগ্রাউন্ড থ্রেডে এই ক্রিয়াগুলি সম্পাদন করে৷কার্ডগুলি প্রদর্শিত হওয়ার সাথে সাথে, সিস্টেম UI
QuickAccessWalletService
অবহিত করে যে প্রথম কার্ডটিonWalletCardSelected
কল করে নির্বাচন করা হয়েছে।- ব্যবহারকারী যখনই একটি নতুন কার্ড নির্বাচন করে তখনই
onWalletCardSelected
বলা হয়। - বর্তমানে নির্বাচিত কার্ড পরিবর্তন না করলেও
onWalletCardSelected
কল করা হতে পারে।
- ব্যবহারকারী যখনই একটি নতুন কার্ড নির্বাচন করে তখনই
যখন ব্যবহারকারী দ্রুত অ্যাক্সেস ওয়ালেট খারিজ করে, তখন সিস্টেম UI কল করে
QuickAccessWalletService
অবহিত করেonWalletDismissed
.
উপরের উদাহরণে, মানিব্যাগটি প্রদর্শিত হওয়ার সময় ব্যবহারকারী ফোনটিকে একটি NFC পেমেন্ট টার্মিনালের পরিসরে নিয়ে আসে। NFC পেমেন্ট পরিচালনার একটি মূল উপাদান হল HostApduService
, যা NFC রিডার দ্বারা প্রদত্ত APDUগুলি প্রক্রিয়া করার জন্য প্রয়োগ করা আবশ্যক (আরও তথ্যের জন্য, হোস্ট-ভিত্তিক কার্ড এমুলেশন দেখুন)। এটি অনুমান করা হয় যে পেমেন্ট অ্যাপটি NFC টার্মিনালের সাথে মিথস্ক্রিয়াটির অগ্রগতি এবং ফলাফল প্রদর্শন করতে একটি কার্যকলাপ শুরু করে। যাইহোক, দ্রুত অ্যাক্সেস ওয়ালেট UI অ্যাপ উইন্ডোর উপরে প্রদর্শিত হয়, যার অর্থ অর্থপ্রদানের কার্যকলাপ দ্রুত অ্যাক্সেস ওয়ালেট UI দ্বারা অস্পষ্ট হয়। এটি সংশোধন করতে, অ্যাপটিকে অবশ্যই সিস্টেম UI-কে অবহিত করতে হবে যে দ্রুত অ্যাক্সেস ওয়ালেট UI খারিজ করা উচিত। এটি আবদ্ধ 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.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
অনুমতির প্রয়োজন হবে যা Android 11-এ প্রবর্তিত হয়েছে। এটি সিস্টেম UI দ্বারা ধারণ করা একটি স্বাক্ষর-স্তরের অনুমতি, যার মানে হল যে শুধুমাত্র সিস্টেম UI প্রক্রিয়াটি QuickAccessWalletService
এর বাস্তবায়নের সাথে আবদ্ধ হতে পারে। সচেতন থাকুন যে সাইড-লোড করা অ্যাপগুলি এই অনুমতি দাবি করতে পারে এবং Android 10 বা তার কম সংস্করণে চলমান ডিভাইসগুলিতে QuickAccessWalletService
ডেটাতে সম্পূর্ণ অ্যাক্সেস পেতে পারে। এটি প্রতিরোধ করার জন্য, এটি সুপারিশ করা হয় যে পরিষেবাটি onCreate
এ বিল্ড সংস্করণটি পরীক্ষা করে দেখুন এবং শুধুমাত্র Android 11 এবং তার পরবর্তী সংস্করণে চলমান ডিভাইসগুলিতে পরিষেবাটি সক্ষম করুন৷ হোস্ট কার্ড এমুলেশন পেমেন্ট পরিষেবা প্রদানের জন্য প্রয়োজনীয় এর বাইরে অন্য কোনো অ্যাপের অনুমতির প্রয়োজন নেই।
যদি ডিফল্ট NFC পেমেন্ট অ্যাপ QuickAccessWalletService
বাস্তবায়ন বা রপ্তানি না করে, তাহলে দ্রুত অ্যাক্সেস ওয়ালেট UI প্রদর্শিত হয় না।
Android 12-এ সেটিংস
লক স্ক্রীন থেকে দ্রুত অ্যাক্সেস ওয়ালেট সক্ষম বা নিষ্ক্রিয় করতে, ব্যবহারকারীরা সেটিংস > প্রদর্শন > লক স্ক্রীনে ওয়ালেট দেখান টগল ব্যবহার করতে পারেন। ছায়ায় মানিব্যাগ নিষ্ক্রিয় করতে, ব্যবহারকারীদের অবশ্যই দ্রুত সেটিংস ছায়ায় ম্যানুয়ালি সম্পাদনা করতে হবে।
চিত্র 5. সেটিংসে লক স্ক্রীন পৃষ্ঠায় ওয়ালেট টগল দেখান৷
Android 11-এ সেটিংস
ব্যবহারকারীরা সেটিংস অ্যাপ থেকে দ্রুত অ্যাক্সেস ওয়ালেট বৈশিষ্ট্যটি বন্ধ করতে পারেন। সেটিংস পৃষ্ঠাটি সেটিংস > সিস্টেম > অঙ্গভঙ্গি > কার্ড এবং পাসে পাওয়া যায়।
কাস্টমাইজেশন
সিস্টেম UI-তে অন্য অবস্থানে দ্রুত অ্যাক্সেস ওয়ালেট ভিউ যোগ করুন
দ্রুত অ্যাক্সেস ওয়ালেট UI একটি সিস্টেম প্লাগইন হিসাবে তৈরি করা হয়েছে৷ যদিও 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);
}
}
দ্রুত অ্যাক্সেস ওয়ালেট UI 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
লক্ষ্য বাদ দিন। পাওয়ার মেনু থেকে দ্রুত অ্যাক্সেস ওয়ালেট সরাতে কিন্তু একটি ভিন্ন সিস্টেম UI প্রদত্ত ভিউতে যোগ করতে, বিল্ড টার্গেট অন্তর্ভুক্ত করুন এবং GlobalActionsImpl
থেকে GlobalActionsPanelPlugin
এর রেফারেন্সগুলি সরান।
ডিফল্ট কনফিগারেশন সেট করুন
অ্যান্ড্রয়েড 12
Android 12 বা উচ্চতর সংস্করণে, দ্রুত সেটিংস শেডে দ্রুত অ্যাক্সেস ওয়ালেট সর্বদা দৃশ্যমান। লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেটের দৃশ্যমানতা নিম্নলিখিত সুরক্ষিত সেটিং দ্বারা গেট করা হয়েছে: LOCKSCREEN_SHOW_WALLET
। লক স্ক্রিনের নীচে ডানদিকে দ্রুত অ্যাক্সেস ওয়ালেট আইকনটি দেখানো হবে কিনা তা এই সেটিং নিয়ন্ত্রণ করে৷ এই সেটিংটি ডিফল্টরূপে true
হিসাবে সেট করা থাকে, তবে ব্যবহারকারী সেটিংস > প্রদর্শন > লক স্ক্রীন > ওয়ালেট দেখান এ বন্ধ করে দিতে পারেন।
অ্যান্ড্রয়েড 11
Android 11-এ, দ্রুত অ্যাক্সেস ওয়ালেট দৃশ্যমানতা দুটি সুরক্ষিত সেটিংস দ্বারা গেট করা হয়েছে: GLOBAL_ACTIONS_PANEL_ENABLED
এবং GLOBAL_ACTIONS_PANEL_AVAILABLE
। AVAILABLE
সেটিংস সেটিংসে বৈশিষ্ট্যটি চালু বা বন্ধ করা যাবে কিনা তা নিয়ন্ত্রণ করে৷ এই সেটিংটি WalletPluginService
দ্বারা true
হিসাবে সেট করা হয়েছে৷ যদি QuickAccessWallet
বিল্ডে অন্তর্ভুক্ত না হয়, তাহলে সেটিংটি false
থেকে যায়। ENABLED
সেটিং একই জায়গায় ডিফল্টরূপে true
হিসাবে সেট করা আছে, কিন্তু সেটিংসে ব্যবহারকারী দ্বারা বন্ধ করা যেতে পারে৷ ডিফল্ট আচরণ পরিবর্তন করতে, WalletPluginService#enableFeatureInSettings
সংশোধন করুন।
বৈধতা
আপনার দ্রুত অ্যাক্সেস ওয়ালেটের বাস্তবায়ন যাচাই করতে, CTS এবং ম্যানুয়াল পরীক্ষা চালান। প্লাগইনের পরিবর্তনের জন্য অন্তর্ভুক্ত রোবোলেক্ট্রিক পরীক্ষাগুলিও অনুশীলন করা উচিত।
CTS পরীক্ষা
cts/tests/quickaccesswallet
এ অবস্থিত CTS পরীক্ষা চালান।
Android 12 এর জন্য ম্যানুয়াল পরীক্ষা
দ্রুত অ্যাক্সেস ওয়ালেটের মূল বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য একটি NFC পেমেন্ট টার্মিনাল (আসল বা নকল) এবং একটি NFC পেমেন্ট অ্যাপ প্রয়োজন যা QuickAccessWalletService
(ওয়ালেট অ্যাপ) প্রয়োগ করে৷ মূল বৈশিষ্ট্যগুলি যা অবশ্যই পরীক্ষা করা উচিত তার মধ্যে রয়েছে: প্রাপ্যতা, শূন্য অবস্থা, কার্ড নির্বাচন এবং লক স্ক্রীন আচরণ।
প্রাপ্যতা
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন না করে, তাহলে দ্রুত সেটিংস বা লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য নয়।
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে, তাহলে দ্রুত সেটিংস শেডে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য।
- যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে এবং যদি
LOCKSCREEN_SHOW_WALLET
সেটিংসটিtrue
হয়, তাহলে দ্রুত অ্যাক্সেস ওয়ালেটটি লক স্ক্রিনে অ্যাক্সেসযোগ্য। - যদি ডিফল্ট NFC পেমেন্ট অ্যাপটি বৈশিষ্ট্যটিকে সমর্থন করে এবং যদি
LOCKSCREEN_SHOW_WALLET
সেটিংসfalse
হয়, তাহলে লক স্ক্রিনে দ্রুত অ্যাক্সেস ওয়ালেট অ্যাক্সেসযোগ্য নয়৷
শূন্য রাষ্ট্র
যদি
QuickAccessWalletService
সক্ষম করা থাকে এবং রপ্তানি করা হয় কিন্তু কোনো কার্ড প্রদান না করে, তাহলে চিত্র 7-এর উদাহরণে দেখানো শেডের টাইলটি প্রদর্শিত হবে। টাইলটিতে ক্লিক করলে ডিফল্ট NFC পেমেন্ট অ্যাপটি খোলে।চিত্র 7. ছায়ায় টাইলের উদাহরণ যা ডিফল্ট NFC পেমেন্ট অ্যাপ দেখাচ্ছে।
চিত্র 8-এ দেখানো খালি স্টেট ভিউতে ক্লিক করলে ডিফল্ট NFC পেমেন্ট অ্যাপ খোলে। এই খালি স্টেট ভিউটি তখনই প্রদর্শিত হয় যখন ব্যবহারকারীর ওয়ালেটে একটি কার্ড অবশিষ্ট থাকে, কার্ডের বিশদ পৃষ্ঠা থেকে কার্ডটি সরিয়ে দেয় এবং তারপরে ওয়ালেট ভিউতে ফিরে যায়।
লক স্ক্রিন ওয়ালেট আইকন দেখায়।
চিত্র 8. দ্রুত অ্যাক্সেস ওয়ালেট UI-তে খালি স্টেট ভিউ।
নন-জিরো স্টেট
যদি ওয়ালেট অ্যাপটি এক বা একাধিক কার্ড প্রদান করে, তাহলে চিত্র 9-এ দেখানো টাইলটি ছায়ায় প্রদর্শিত হবে।
চিত্র 9. ওয়ালেট অ্যাপে এক বা একাধিক কার্ড থাকলে ছায়ায় টাইলের উদাহরণ।
টাইলের উপর ক্লিক করা একটি কার্ড ক্যারোজেল দেখায়।
লক স্ক্রীন একটি বোতাম দেখায় যা দ্রুত অ্যাক্সেস ওয়ালেট খোলে।
চিত্র 10. একটি কার্ডের সাথে দ্রুত অ্যাক্সেস ওয়ালেট UI।
যদি প্রদর্শিত কার্ডটি একটি NFC পেমেন্ট পদ্ধতির প্রতিনিধিত্ব করে, তাহলে একটি NFC পেমেন্ট টার্মিনালে ফোনটি ধরে রাখলে সেই অর্থপ্রদানের পদ্ধতিটি ব্যবহার করা হবে এবং ওয়ালেট ভিউ খারিজ হয়ে যাবে।
একটি প্রদর্শিত কার্ডে ক্লিক করা সেই কার্ডের জন্য বিস্তারিত কার্যকলাপ খোলে।
QuickAccessWalletService
দ্বারা একাধিক কার্ড প্রদান করা হলে, ব্যবহারকারী কার্ডগুলির মধ্যে সোয়াইপ করতে সক্ষম।ওভারফ্লো মেনুতে একটি এন্ট্রি রয়েছে: লক স্ক্রিন সেটিংস খুলুন যাতে ব্যবহারকারী শো ওয়ালেট বিকল্পটি পরিবর্তন করতে পারে।
লক রাষ্ট্র পরীক্ষা
- যদি ফোনটি লক করা থাকে তবে ডিফল্ট পেমেন্ট অ্যাপে কোনও কার্ড না থাকলে একটি কার্ড যুক্ত করার বিবরণ সহ ওয়ালেটটি দ্রুত সেটিংস ছায়ায় দৃশ্যমান, বা ডিফল্ট পেমেন্ট অ্যাপে কার্ড উপস্থিত থাকলে ব্যবহার করতে আনলক করুন ।
- যদি ফোনটি লক করা থাকে তবে লক স্ক্রিনে ওয়ালেট দৃশ্যমানতা
Secure.LOCKSCREEN_SHOW_WALLET
দ্বারা নিয়ন্ত্রিত হয় ock - যদি ফোনটি লক করা থাকে তবে
LOCKSCREEN_SHOW_WALLET
false
, এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপে কোনও কার্ড বিদ্যমান নেই, ওয়ালেটটি লক স্ক্রিনে প্রদর্শিত হয় না। - যদি ফোনটি লক করা থাকে তবে
LOCKSCREEN_SHOW_WALLET
true
এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপে কোনও কার্ড বিদ্যমান নেই, ওয়ালেটটি লক স্ক্রিনে প্রদর্শিত হয় না। - যদি ফোনটি লক করা থাকে তবে
LOCKSCREEN_SHOW_WALLET
true
এবং কার্ডগুলি ডিফল্ট এনএফসি পেমেন্ট অ্যাপে বিদ্যমান, ওয়ালেটটি লক স্ক্রিনে প্রদর্শিত হয়। - ওয়ালেটটি লক স্ক্রিনে প্রদর্শিত হওয়ার সময় ফোনটি আনলক করার ফলে কার্ডগুলি প্রয়োজন হয়, যার ফলে বিভিন্ন কার্ডের সামগ্রী হতে পারে।
অ্যাক্সেসিবিলিটি পরীক্ষা
- টকব্যাক ব্যবহারকারীরা বাম এবং ডানদিকে সোয়াইপ করে এবং কার্ডগুলির সামগ্রীর বিবরণ শুনে ওয়ালেট ভিউটি নেভিগেট করতে পারেন।
- টকব্যাক সক্ষম করে বাম এবং ডানদিকে সোয়াইপ করা প্রতিটি কার্ড ঘুরে নির্বাচন করে। টকব্যাক ব্যবহারকারীরা কোনও এনএফসি পেমেন্ট টার্মিনালে একটি এনএফসি পেমেন্ট পদ্ধতি নির্বাচন এবং ব্যবহার করতে পারেন।
অ্যান্ড্রয়েড 11 এর জন্য ম্যানুয়াল পরীক্ষা
কুইক অ্যাক্সেস ওয়ালেটের মূল বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য একটি এনএফসি পেমেন্ট টার্মিনাল (বাস্তব বা জাল) এবং একটি এনএফসি পেমেন্ট অ্যাপ্লিকেশন প্রয়োজন যা QuickAccessWalletService
(ওয়ালেট অ্যাপ) প্রয়োগ করে। মূল বৈশিষ্ট্যগুলি যা পরীক্ষা করতে হবে তার মধ্যে রয়েছে উপলভ্যতা, জিরো স্টেট, কার্ড নির্বাচন এবং লক স্ক্রিন আচরণ।
প্রাপ্যতা
- যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংটিtrue
হয় এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপ্লিকেশনটি বৈশিষ্ট্যটিকে সমর্থন করে, দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য। - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংটিfalse
এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপ বৈশিষ্ট্যটিকে সমর্থন করে, দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য নয় । - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংটিtrue
হয় এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপ্লিকেশনটি বৈশিষ্ট্যটিকে সমর্থন করে না , দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য নয় । - যদি
GLOBAL_ACTIONS_PANEL_ENABLED
সেটিংটিfalse
এবং ডিফল্ট এনএফসি পেমেন্ট অ্যাপ্লিকেশন বৈশিষ্ট্যটিকে সমর্থন করে না , দ্রুত অ্যাক্সেস ওয়ালেটটি অ্যাক্সেসযোগ্য নয় ।
জিরো স্টেট
- যদি
QuickAccessWalletService
সক্ষম এবং রফতানি করা হয় তবে কোনও কার্ড সরবরাহ না করে তবে দ্রুত অ্যাক্সেস ওয়ালেট ইউআই খালি রাষ্ট্রের দৃশ্য প্রদর্শন করে। খালি রাষ্ট্রের দেখুন ক্লিক করা ওয়ালেট অ্যাপটি খোলে।
অ-শূন্য রাজ্য
যদি ওয়ালেট অ্যাপ্লিকেশনটি এক বা একাধিক কার্ড সরবরাহ করে তবে কার্ডগুলি দ্রুত অ্যাক্সেস ওয়ালেট ইউআইতে প্রদর্শিত হয়।
যদি প্রদর্শিত কার্ডটি কোনও এনএফসি অর্থ প্রদানের পদ্ধতির প্রতিনিধিত্ব করে, ফোনটি একটি এনএফসি পেমেন্ট টার্মিনালে ধারণ করে সেই অর্থ প্রদানের পদ্ধতিটি ব্যবহৃত হচ্ছে এবং ওয়ালেট ভিউ খারিজ করা হয়।
প্রদর্শিত কার্ডে ক্লিক করা ওয়ালেট ভিউটি খারিজ করে এবং সেই কার্ডের জন্য বিশদ ক্রিয়াকলাপটি খুলে দেয়।
যদি একাধিক কার্ড
QuickAccessWalletService
দ্বারা সরবরাহ করা হয় তবে ব্যবহারকারী কার্ডগুলির মধ্যে সোয়াইপ করতে সক্ষম।ওভারফ্লো মেনুতে দুটি এন্ট্রি রয়েছে: একটি যা ওয়ালেট অ্যাপটি খোলে এবং একটি যা শো কার্ডগুলি খোলে এবং সেটিংসে স্ক্রিনটি পাস করে ।
লক রাষ্ট্র পরীক্ষা
- যদি ফোনটি লক করা থাকে তবে ওয়ালেট দৃশ্যমানতা সেটিংস দ্বারা নিয়ন্ত্রিত হয়
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
- যদি ফোনটি লক করা থাকে এবং
POWER_MENU_LOCK_SHOW_CONTENT
false
হয় তবে ওয়ালেটটি প্রদর্শিত হয় না। - যদি ফোনটি লক করা থাকে এবং
POWER_MENU_LOCK_SHOW_CONTENT
true
হয় তবে ওয়ালেটটি প্রদর্শিত হয়। - লক স্ক্রিনে ওয়ালেটটি প্রদর্শিত হওয়ার সময় ফোনটি আনলক করা কার্ডগুলি পুনরায় প্রশ্নবিদ্ধ হওয়ার ফলস্বরূপ, যার ফলে বিভিন্ন কার্ডের সামগ্রী হতে পারে।
অ্যাক্সেসিবিলিটি পরীক্ষা
- টকব্যাক ব্যবহারকারীরা বাম এবং ডানদিকে সোয়াইপ করে এবং কার্ডগুলির সামগ্রীর বিবরণ শুনে ওয়ালেট ভিউটি নেভিগেট করতে পারেন।
- টকব্যাক সক্ষম করে বাম এবং ডানদিকে সোয়াইপ করা প্রতিটি কার্ড ঘুরে নির্বাচন করে। টকব্যাক ব্যবহারকারীরা কোনও এনএফসি পেমেন্ট টার্মিনালে একটি এনএফসি পেমেন্ট পদ্ধতি নির্বাচন এবং ব্যবহার করতে পারেন।