یک کاشی تنظیمات سریع پرداخت با کد QR ایجاد کنید

تنظیمات سریع کاشی هایی هستند که در پانل تنظیمات سریع نمایش داده می شوند. کاربران می توانند روی این کاشی ها ضربه بزنند تا کارهای تکراری را به سرعت انجام دهند. این سند به شما نشان می دهد که چگونه یک کاشی تنظیمات سریع سفارشی برای پرداخت های کد QR ایجاد کنید.

قبل از ادامه، مطمئن شوید که با دستورالعمل‌های کلی و بهترین روش‌ها برای ایجاد کاشی‌های تنظیمات سریع سفارشی برای برنامه خود آشنا هستید.

برای ایجاد کاشی خود ، این مراحل را دنبال کنید:

  1. نماد دلخواه خود را ایجاد کنید .
  2. TileService خود را ایجاد و اعلام کنید .

  3. برای راه اندازی پرداخت با کد QR، روش onClick() را پر کنید. ضربه زدن طولانی روی یک کاشی صفحه اطلاعات برنامه را برای کاربر نمایش می دهد. برای لغو این رفتار و در عوض راه‌اندازی یک فعالیت برای تنظیم تنظیمات برگزیده، یک <intent-filter> با ACTION_QS_TILE_PREFERENCES به یکی از فعالیت‌های خود اضافه کنید.

    کاتلین

    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)
       }
    }

    جاوا

    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. برای محافظت از اطلاعات حساس پرداخت کاربران، فقط اقدامات ایمن را در دستگاه‌های قفل‌شده ایمن انجام دهید .

    کاتلین

    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)
           }
       }
       // ...
    }

    جاوا

    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. هنگامی که برای اولین بار این ویژگی را معرفی کردید، از کاربر بخواهید کاشی شما را اضافه کند .