یک کاشی تنظیمات سریع پرداخت با کد QR ایجاد کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
تنظیمات سریع کاشی هایی هستند که در پانل تنظیمات سریع نمایش داده می شوند. کاربران می توانند روی این کاشی ها ضربه بزنند تا کارهای تکراری را به سرعت انجام دهند. این سند به شما نشان می دهد که چگونه یک کاشی تنظیمات سریع سفارشی برای پرداخت های کد QR ایجاد کنید.
قبل از ادامه، مطمئن شوید که با دستورالعملهای کلی و بهترین روشها برای ایجاد کاشیهای تنظیمات سریع سفارشی برای برنامه خود آشنا هستید.
برای ایجاد کاشی خود ، این مراحل را دنبال کنید:
- نماد دلخواه خود را ایجاد کنید .
TileService
خود را ایجاد و اعلام کنید .
برای راه اندازی پرداخت با کد QR، روش onClick()
را پر کنید. ضربه زدن طولانی روی یک کاشی صفحه اطلاعات برنامه را برای کاربر نمایش می دهد. برای لغو این رفتار و در عوض راهاندازی یک فعالیت برای تنظیم تنظیمات برگزیده، یک <intent-filter>
با ACTION_QS_TILE_PREFERENCES
به یکی از فعالیتهای خود اضافه کنید.
کاتلین
import android.service.quicksettings.TileService
// Called when the user taps on your tile in an active or inactive state.
override fun onClick() {
// Create Intent, replace MainActivity::class.java with QR Code Activity
val intent = Intent(this, MainActivity::class.java)
// Create PendingIntent
val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
startActivityAndCollapse(pendingIntent)
} else {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivityAndCollapse(intent)
}
}
جاوا
import android.service.quicksettings.TileService;
// Called when the user taps on your tile in an active or inactive state.
@Override
public void onClick() {
// Create Intent, replace MainActivity.class with QR Code Activity
Intent intent = new Intent(MyQSTileService.this, MainActivity.class);
// Create PendingIntent
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
if (VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) {
startActivityAndCollapse(pendingIntent);
} else {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityAndCollapse(intent);
}
}
برای محافظت از اطلاعات حساس پرداخت کاربران، فقط اقدامات ایمن را در دستگاههای قفلشده ایمن انجام دهید .
کاتلین
import android.service.quicksettings.TileService
override fun onClick() {
val intent = Intent(this, MainActivity::class.java)
val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)
// ...
if (isSecure()) {
startActivityAndCollapse(pendingIntent)
} else {
unlockAndRun {
startActivityAndCollapse(pendingIntent)
}
}
// ...
}
جاوا
import android.service.quicksettings.TileService;
@Override
public void onClick() {
Intent intent = new Intent(MyQSTileService.this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
...
if (isSecure()) {
startActivityAndCollapse(pendingIntent);
} else {
unlockAndRun(new Runnable() {
@Override
public void run() {
startActivityAndCollapse(pendingIntent);
}
});
}
...
}
هنگامی که برای اولین بار این ویژگی را معرفی کردید، از کاربر بخواهید کاشی شما را اضافه کند .
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Create a QR Code Payment Quick Settings tile\n\nQuick Settings are tiles displayed in the [Quick Settings panel](https://support.google.com/android/answer/9083864).\nUsers can tap these tiles to quickly complete recurring tasks.\nThis document shows you how to create a custom Quick Settings tile for QR Code\npayments.\n\nBefore continuing, be sure you're familiar with general instructions and best\npractices for [creating custom Quick Settings tiles for your app](/develop/ui/views/quicksettings-tiles).\n\nTo [create your tile](/develop/ui/views/quicksettings-tiles#create-tile), follow these steps:\n\n1. [Create your custom icon](/develop/ui/views/quicksettings-tiles#create-custom).\n2. [Create and declare your `TileService`](/develop/ui/views/quicksettings-tiles#create-declare-tileservice).\n\n | **Note:** At this point, your custom tile service will appear in the Quick Settings menu. In order to see your custom tile upon pull down, [edit and\n | rearrange your tiles](https://support.google.com/android/answer/9083864).\n3. To launch the QR Code payment, fill in the `onClick()` method. Long-tapping\n a tile prompts the App Info screen for the user. To override this behavior\n and instead launch an activity for setting preferences, add an\n `\u003cintent-filter\u003e` to one of your activities with\n [`ACTION_QS_TILE_PREFERENCES`](/reference/android/service/quicksettings/TileService.html?utm_campaign=adp_series_quicksettingstiles_092916&utm_source=medium&utm_medium=blog#ACTION_QS_TILE_PREFERENCES).\n\n ### Kotlin\n\n ```kotlin\n import android.service.quicksettings.TileService\n\n // Called when the user taps on your tile in an active or inactive state.\n override fun onClick() {\n // Create Intent, replace MainActivity::class.java with QR Code Activity\n val intent = Intent(this, MainActivity::class.java)\n // Create PendingIntent\n val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)\n if (android.os.Build.VERSION.SDK_INT \u003e= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {\n startActivityAndCollapse(pendingIntent)\n } else {\n intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)\n startActivityAndCollapse(intent)\n }\n }\n ```\n\n ### Java\n\n ```java\n import android.service.quicksettings.TileService;\n\n // Called when the user taps on your tile in an active or inactive state.\n @Override\n public void onClick() {\n // Create Intent, replace MainActivity.class with QR Code Activity\n Intent intent = new Intent(MyQSTileService.this, MainActivity.class);\n // Create PendingIntent\n PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);\n if (VERSION.SDK_INT \u003e= VERSION_CODES.UPSIDE_DOWN_CAKE) {\n startActivityAndCollapse(pendingIntent);\n } else {\n intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n startActivityAndCollapse(intent);\n }\n }\n ```\n4. To protect users' sensitive payment information, [perform only safe actions\n on securely-locked devices](/develop/ui/views/quicksettings-tiles#perform-only).\n\n ### Kotlin\n\n ```kotlin\n import android.service.quicksettings.TileService\n\n override fun onClick() {\n val intent = Intent(this, MainActivity::class.java)\n val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)\n\n // ...\n\n if (isSecure()) {\n startActivityAndCollapse(pendingIntent)\n } else {\n unlockAndRun {\n startActivityAndCollapse(pendingIntent)\n }\n }\n // ...\n }\n ```\n\n ### Java\n\n ```java\n import android.service.quicksettings.TileService;\n\n @Override\n public void onClick() {\n Intent intent = new Intent(MyQSTileService.this, MainActivity.class);\n PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);\n ...\n if (isSecure()) {\n startActivityAndCollapse(pendingIntent);\n } else {\n unlockAndRun(new Runnable() {\n @Override\n public void run() {\n startActivityAndCollapse(pendingIntent);\n }\n });\n }\n ...\n }\n ```\n5. When first introducing this feature, [prompt the user to add your\n tile](/develop/ui/views/quicksettings-tiles#prompt-user)."]]