Le Impostazioni rapide sono riquadri visualizzati nel riquadro Impostazioni rapide. Gli utenti possono toccare questi riquadri per completare rapidamente le attività ricorrenti. Questo documento mostra come creare un riquadro Impostazioni rapide personalizzato per il codice QR pagamenti.
Prima di continuare, assicurati di acquisire familiarità con le istruzioni generali e le best practice pratiche per creare riquadri personalizzati delle Impostazioni rapide per la tua app.
Per creare il tuo riquadro, segui questi passaggi:
- Crea la tua icona personalizzata.
Per avviare il pagamento tramite codice QR, compila il metodo
onClick()
. Toccando in modo lungo un riquadro mostra la schermata Info app per l'utente. Per ignorare questo comportamento e avviare invece un'attività per l'impostazione delle preferenze, aggiungere<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 gli utenti dati di pagamento sensibili, esegui solo azioni sicure su dispositivi bloccati in modo sicuro.
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 tuo riquadro.