QR Koduyla Ödeme Hızlı Ayarları kutusu oluşturma

Hızlı Ayarlar, Hızlı Ayarlar panelinde görüntülenen kutulardır. Kullanıcılar bu kutulara dokunarak yinelenen görevleri hızlıca tamamlayabilir. Bu dokümanda, QR Kodu ödemeleri için özel Hızlı Ayarlar kutusunun nasıl oluşturulacağı gösterilmektedir.

Devam etmeden önce, uygulamanız için özel Hızlı Ayarlar blokları oluşturma ile ilgili genel talimatlar ve en iyi uygulamalar hakkında bilgi sahibi olduğunuzdan emin olun.

Kartınızı oluşturmak için şu adımları uygulayın:

  1. Özel simgenizi oluşturun.
  2. TileService oluşturun ve beyan edin.

  3. QR koduyla ödeme işlemini başlatmak için onClick() yöntemini doldurun. Bir karoya uzun süre dokunulduğunda, kullanıcının Uygulama Bilgileri ekranı görüntülenir. Bu davranışı geçersiz kılmak ve bunun yerine tercihleri ayarlamaya yönelik bir etkinlik başlatmak için ACTION_QS_TILE_PREFERENCES ile gerçekleştirdiğiniz etkinliklerinizden birine <intent-filter> ekleyin.

    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);
     }
    }
    
  4. Kullanıcıların hassas ödeme bilgilerini korumak için güvenli bir şekilde kilitlenen cihazlarda yalnızca güvenli işlemler gerçekleştirin.

    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);
         }
       });
      }
     ...
    }
    
  5. Bu özelliği ilk kez kullanıma sunarken kullanıcıdan karonuzu eklemesini isteyin.