Le Impostazioni rapide sono riquadri visualizzati nel riquadro Impostazioni rapide. Gli utenti possono toccare questi riquadri per completare rapidamente attività ricorrenti. Questo documento mostra come creare un riquadro Impostazioni rapide personalizzato per i pagamenti con codice QR.
Prima di continuare, assicurati di acquisire familiarità con le istruzioni generali e le best practice per creare riquadri Impostazioni rapide personalizzati per la tua app.
Per creare il tuo riquadro, segui questi passaggi:
- Crea la tua icona personalizzata.
Per lanciare il pagamento con codice QR, compila il metodo
onClick()
. Se tocchi a lungo un riquadro, viene visualizzata la schermata delle informazioni sull'app. Per ignorare questo comportamento e avviare un'attività per l'impostazione delle preferenze, aggiungi un<intent-filter>
a una delle tue attività 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); } }
Per proteggere i dati di pagamento sensibili degli utenti, esegui solo azioni sicure sui dispositivi bloccati in sicurezza.
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); } }); } ... }
Quando introduci questa funzionalità per la prima volta, chiedi all'utente di aggiungere il riquadro.