Быстрые настройки — это плитки, отображаемые на панели быстрых настроек . Пользователи могут нажимать на эти плитки, чтобы быстро выполнять повторяющиеся задачи. В этом документе показано, как создать собственную плитку быстрых настроек для платежей с помощью QR-кода.
Прежде чем продолжить, убедитесь, что вы знакомы с общими инструкциями и рекомендациями по созданию пользовательских плиток быстрых настроек для вашего приложения .
Чтобы создать плитку , выполните следующие действия:
- Создайте свой собственный значок .
Чтобы запустить оплату по 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); } }); } ... }
При первом внедрении этой функции предложите пользователю добавить вашу плитку .