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ể thêm họ vào màn hình chính ngay từ ứng dụng, như minh hoạ 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 của mình, bạn có thể tạo một yêu cầu để hệ thống ghim tiện ích vào một trình chạy được hỗ trợ bằng cách hoàn thành các bước sau:

  1. Hãy nhớ khai báo một 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 của bạn thông qua bộ chọn tiện ích hoặc trong ứng dụng 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á.