Las opciones de Configuración rápida son tarjetas que se muestran en el panel de Configuración rápida. Los usuarios pueden presionar estas tarjetas para completar tareas recurrentes rápidamente. En este documento, se muestra cómo crear una tarjeta personalizada de Configuración rápida para realizar pagos con código QR.
Antes de continuar, asegúrate de conocer las instrucciones generales y las prácticas recomendadas para crear tarjetas de Configuración rápida personalizadas para tu app.
Para crear tu tarjeta, sigue estos pasos:
- Crea un ícono personalizado.
Para iniciar el pago con código QR, completa la forma
onClick()
. Si mantienes presionado un mosaico, se mostrará la pantalla Información de la app del usuario. Si deseas anular este comportamiento y, en su lugar, iniciar una actividad para configurar preferencias, agrega un<intent-filter>
a una de tus actividades conACTION_QS_TILE_PREFERENCES
.Kotlin
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) } }
Java
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); } }
Para proteger la información de pago sensible de los usuarios, solo realiza acciones seguras en dispositivos bloqueados de forma segura.
Kotlin
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) } } // ... }
Java
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); } }); } ... }
Cuando presentes esta función por primera vez, pídele al usuario que agregue tu tarjeta.