Khả năng phát hiện tiện ích

Trên các thiết bị chạy Android 8.0 (API cấp 26) trở lên, các trình chạy cho phép người dùng tạo lối tắt được ghim cũng cho phép họ ghim các tiện ích vào màn hình chính. Tương tự như lối tắt được ghim, các tiện ích được ghim này cho phép người dùng truy cập vào các thao tác cụ thể trong ứng dụng và có thể được thêm vào màn hình chính ngay từ ứng dụng, như trong video sau.

Ví dụ về bố cục thích ứng
Hình 2. Ví dụ về cách ghim tiện ích.

Cho phép người dùng ghim tiện ích

Trong ứng dụng, bạn có thể tạo một yêu cầu để hệ thống ghim một tiện ích vào trình chạy được hỗ trợ bằng cách hoàn tất các bước sau:

  1. Hãy nhớ khai báo tiện ích trong tệp kê khai của ứng dụng.

  2. Gọi phương thức requestPinAppWidget(), như minh hoạ trong đoạn mã sau:

Kotlin

val appWidgetManager = AppWidgetManager.getInstance(context)
val myProvider = ComponentName(context, ExampleAppWidgetProvider::class.java)

if (appWidgetManager.isRequestPinAppWidgetSupported()) {
    // Create the PendingIntent object only if your app needs to be notified
    // when the user chooses to pin the widget. Note that if the pinning
    // operation fails, your app isn't notified. This callback receives the ID
    // of the newly pinned widget (EXTRA_APPWIDGET_ID).
    val successCallback = PendingIntent.getBroadcast(
            /* context = */ context,
            /* requestCode = */ 0,
            /* intent = */ Intent(...),
            /* flags = */ PendingIntent.FLAG_UPDATE_CURRENT)

    appWidgetManager.requestPinAppWidget(myProvider, null, successCallback)
}

Java

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName myProvider = new ComponentName(context, ExampleAppWidgetProvider.class);

if (appWidgetManager.isRequestPinAppWidgetSupported()) {
    // Create the PendingIntent object only if your app needs to be notified
    // when the user chooses to pin the widget. Note that if the pinning
    // operation fails, your app isn't notified. This callback receives the ID
    // of the newly pinned widget (EXTRA_APPWIDGET_ID).
    PendingIntent successCallback = PendingIntent.getBroadcast(
            /* context = */ context,
            /* requestCode = */ 0,
            /* intent = */ new Intent(...),
            /* flags = */ PendingIntent.FLAG_UPDATE_CURRENT);

    appWidgetManager.requestPinAppWidget(myProvider, null, successCallback);
}

Người dùng khám phá và thêm tiện ích thông qua bộ chọn tiện ích hoặc từ trong ứng dụng của bạn khi chức năng của tiện ích phù hợp nhất. Để biết thêm thông tin, hãy xem phần Khám phá và quảng bá.