Schnelleinstellungen sind Kacheln, die im Bereich Schnelleinstellungen angezeigt werden. Nutzer können auf diese Kacheln tippen, um schnell wiederkehrende Aufgaben zu erledigen. In diesem Dokument erfährst du, wie du eine benutzerdefinierte Kachel für Schnelleinstellungen für Zahlungen per QR-Code erstellst.
Machen Sie sich zuerst mit den allgemeinen Anleitungen und Best Practices zum Erstellen benutzerdefinierter Schnelleinstellungen-Kacheln für Ihre App vertraut.
- Benutzerdefiniertes Symbol erstellen
Gib die
onClick()
-Methode an, um die QR-Code-Zahlung zu starten. Durch langes Antippen einer Kachel wird der Bildschirm mit den App-Informationen für den Nutzer angezeigt. Wenn Sie dieses Verhalten überschreiben und stattdessen eine Aktivität zum Festlegen von Einstellungen starten möchten, fügen Sie einer Ihrer Aktivitäten mitACTION_QS_TILE_PREFERENCES
ein<intent-filter>
hinzu.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); } }
Zum Schutz der vertraulichen Zahlungsinformationen Ihrer Nutzer führen Sie nur sichere Aktionen auf sicher gesperrten Geräten aus.
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); } }); } ... }
Wenn du diese Funktion zum ersten Mal vorstellst, solltest du den Nutzer auffordern, deine Kachel hinzuzufügen.