إنشاء مربّع الإعدادات السريعة للدفع من خلال رمز الاستجابة السريعة

"الإعدادات السريعة" هي مربّعات تظهر في لوحة "الإعدادات السريعة". يمكن للمستخدمين النقر على هذه الفئات لإكمال المهام المتكرّرة بسرعة. يوضِّح لك هذا المستند طريقة إنشاء مربّع إعدادات سريعة مخصّص لرمز الاستجابة السريعة. والمدفوعات.

قبل المتابعة، تأكد من أنك على دراية بالتعليمات العامة وأفضل الممارسات المتعلقة بإنشاء مربّعات إعدادات سريعة مخصّصة لتطبيقك

لإنشاء مربّعك، اتّبِع الخطوات التالية:

  1. إنشاء الرمز المخصّص
  2. إنشاء TileService والإعلان عنها

  3. لتفعيل عملية الدفع من خلال رمز الاستجابة السريعة، يُرجى ملء بيانات طريقة onClick(). النقر الطويل مربّع يطالبك بشاشة "معلومات التطبيق" للمستخدم. لإلغاء هذا السلوك وبدلاً من ذلك، يمكنك إطلاق نشاط لضبط الإعدادات المفضّلة، وإضافة في <intent-filter> إلى أحد أنشطتك مع 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. لحماية المستخدمين معلومات الدفع الحساسة، فعليك تنفيذ إجراءات آمنة فقط على الأجهزة المُقفَلة بأمان.

    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. عند تقديم هذه الميزة لأول مرة، اطلب من المستخدم إضافة