Cài đặt nhanh là các ô xuất hiện trong bảng điều khiển Cài đặt nhanh. Người dùng có thể nhấn vào các thẻ thông tin này để nhanh chóng hoàn tất các việc cần làm định kỳ. Tài liệu này hướng dẫn bạn cách tạo một ô tuỳ chỉnh trong trình đơn Cài đặt nhanh cho mã QR thanh toán.
Trước khi tiếp tục, hãy đảm bảo rằng bạn đã nắm rõ các hướng dẫn chung và các phương pháp để tạo thẻ thông tin tuỳ chỉnh trong trình đơn Cài đặt nhanh cho ứng dụng.
Để tạo thẻ thông tin, hãy làm theo các bước sau:
- Tạo biểu tượng tuỳ chỉnh.
Để mở giao dịch thanh toán bằng mã QR, hãy điền vào phương thức
onClick()
. Nhấn và giữ thẻ thông tin sẽ nhắc người dùng truy cập vào màn hình Thông tin ứng dụng. Để ghi đè hành vi này và thay vào đó hãy khởi chạy một hoạt động cho các lựa chọn ưu tiên về chế độ cài đặt, hãy thêm một<intent-filter>
đến một trong các hoạt động của bạn bằngACTION_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); } }
Để bảo vệ thông tin thanh toán nhạy cảm, chỉ thực hiện những hành động an toàn trên thiết bị đã khoá an toàn.
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); } }); } ... }
Khi giới thiệu tính năng này lần đầu tiên, hãy nhắc người dùng thêm thẻ thông tin.