יצירת לחצן בהגדרות המהירות לתשלום דרך קוד QR

'הגדרות מהירות' הן משבצות שמוצגות בחלונית 'הגדרות מהירות'. המשתמשים יכולים להקיש על המשבצות האלה כדי להשלים במהירות משימות חוזרות. במסמך הזה מוסבר איך ליצור לחצן 'הגדרות מהירות' בהתאמה אישית לקוד QR תשלומים.

לפני שממשיכים, כדאי לוודא שאתם מכירים את ההוראות הכלליות ושהם יודעים הכי טוב שיטות ליצירת כרטיסי מידע מותאמים אישית בהגדרות המהירות לאפליקציה.

כדי ליצור כרטיס מידע, פועלים לפי השלבים הבאים:

  1. יוצרים סמל מותאם אישית.
  2. יצירה של TileService והצהרה עליו.

  3. כדי להפעיל את התשלום באמצעות קוד QR, צריך למלא את אמצעי התשלום 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. בהפעלה הראשונה של התכונה הזו, יש לבקש מהמשתמש להוסיף משבצת.