Ghim tiện ích Xem nhanh trong ứng dụng
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Với Android 8.0 (API cấp 26) trở lên, bạn có thể cho phép người dùng ghim các tiện ích của bạn vào màn hình chính trong ứng dụng. Việc quảng bá tiện ích ngay trong ứng dụng là một cách tuyệt vời để tăng mức độ tương tác của người dùng, đặc biệt là sau khi người dùng hoàn thành một tác vụ liên quan hoặc khi người dùng truy cập nhiều lần vào một tính năng trong ứng dụng của bạn.
Tạo yêu cầu về mã PIN
Để bắt đầu ghim tiện ích, hãy sử dụng phương thức requestPinGlanceAppWidget
trong lớp GlanceAppWidgetManager
. Đối với các ứng dụng chạy trên phiên bản Android thấp hơn, phương thức này sẽ trả về giá trị false. Tuy nhiên, nếu yêu cầu được gửi thành công đến hệ thống, thì phương thức này sẽ trả về giá trị true.
Sau đây là ví dụ về cách bạn có thể tạo yêu cầu ghim:
@Composable
fun AnInAppComposable() {
val context = LocalContext.current
val coroutineScope = rememberCoroutineScope()
Button(
onClick = {
coroutineScope.launch {
GlanceAppWidgetManager(context).requestPinGlanceAppWidget(
receiver = MyWidgetReceiver::class.java,
preview = MyWidget(),
previewState = DpSize(245.dp, 115.dp)
)
}
}
) {}
}
Trong ví dụ này, MyWidgetReceiver
là lớp nhận các lệnh gọi lại của tiện ích, còn MyWidget
là tiện ích Glance mà bạn muốn ghim. successCallback
là một PendingIntent
được kích hoạt khi tiện ích được ghim thành công.
Xử lý Phản hồi yêu cầu mã PIN
Khi người dùng phản hồi hộp thoại yêu cầu mã ghim, ứng dụng của bạn sẽ nhận được một phản hồi. Nếu người dùng chấp nhận yêu cầu, tiện ích của bạn sẽ được ghim vào màn hình chính của họ và successCallback
PendingIntent
sẽ được kích hoạt. Nếu người dùng từ chối yêu cầu, thì sẽ không có điều gì xảy ra.
Điều quan trọng cần lưu ý là successCallback
chỉ được kích hoạt nếu tiện ích được thêm thành công vào màn hình chính. Sự kiện này sẽ không được kích hoạt nếu người dùng từ chối yêu cầu hoặc nếu trình chạy không hỗ trợ tính năng ghim.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-26 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-26 UTC."],[],[],null,["With Android 8.0 (API level 26) and higher, you can let users pin your\nwidgets to their home screen within your app. Promoting widgets directly within\nyour app is a great way to increase user engagement, especially after a\nuser completes a related task, or when a user repeatedly accesses a feature in\nyour app.\n\nCreate a Pin Request\n\nTo initiate widget pinning, use the [`requestPinGlanceAppWidget`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager#requestPinGlanceAppWidget(java.lang.Class,androidx.glance.appwidget.GlanceAppWidget,kotlin.Any,android.app.PendingIntent)) method\nfrom the [`GlanceAppWidgetManager`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager) class. For apps running on lower versions\nof Android, this returns false. However if the request is successfully sent\nto the system, this returns true.\n\nHere is an example of how you can create a pin request:\n\n\n```kotlin\n@Composable\nfun AnInAppComposable() {\n val context = LocalContext.current\n val coroutineScope = rememberCoroutineScope()\n Button(\n onClick = {\n coroutineScope.launch {\n GlanceAppWidgetManager(context).requestPinGlanceAppWidget(\n receiver = MyWidgetReceiver::class.java,\n preview = MyWidget(),\n previewState = DpSize(245.dp, 115.dp)\n )\n }\n }\n ) {}\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlancePinAppWidget.kt#L44-L59\n```\n\n\u003cbr /\u003e\n\nIn this example, `MyWidgetReceiver` is the class that receives the widget's\ncallbacks, and `MyWidget` is the Glance widget you want to pin. The\n`successCallback` is a `PendingIntent` that is triggered when the widget is\nsuccessfully pinned.\n\nHandle the Pin Request Response\n\nWhen a user responds to the pin request dialog, your app receives a\nresponse. If the user accepts the request, your widget is pinned to their\nhome screen, and the `successCallback` `PendingIntent` is triggered. If the\nuser denies the request, nothing happens.\n\nIt is important to note that the `successCallback` is only triggered if the\nwidget is successfully added to the home screen. It is not triggered if the user\ndenies the request or if the launcher does not support pinning."]]