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

Hızlı Ayarlar, Hızlı Ayarlar panelinde görüntülenen karolardır. Kullanıcılar, yinelenen görevleri hızlıca tamamlamak için bu kartlara dokunabilir. Bu dokümanda, QR Kodu için özel bir Hızlı Ayarlar kutusunun nasıl oluşturulacağı gösterilmektedir ödeme.

Devam etmeden önce genel talimatlar ve en iyi uygulamalar hakkında bilgi sahibi olduğunuzdan emin olun uygulamanız için özel Hızlı Ayar kutuları oluşturmaya yönelik en iyi uygulamaları inceleyin.

Döşemenizi oluşturmak için şu adımları uygulayın:

  1. Özel simgenizi oluşturun.
  2. TileService oluşturun ve bildirin.

  3. QR koduyla ödeme işlemini başlatmak için onClick() yöntemini doldurun. Uzun Dokunaklı Bir karoda, kullanıcının Uygulama Bilgileri ekranı gösteriliyor. Bu davranışı geçersiz kılmak için ve bunun yerine tercihleri ayarlamak için bir etkinlik başlatın, <intent-filter> etkinliğinden birine ACTION_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);
     }
    }
    
  4. Kullanıcıların güvenliğini korumak için hassas ödeme bilgileri, yalnızca güvenli işlemler gerçekleştirme (güvenli bir şekilde kilitlenen cihazlarda kullanılabilir) başlıklı makaleyi inceleyin.

    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 sunarken kullanıcıdan kutu.