Wykrywalność widżetu

Na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym programy uruchamiające, które umożliwiają użytkownikom tworzenie przypiętych skrótów, pozwalają też przypinać widżety do ekranu głównego. Podobnie jak przypięte skróty, te przypięte widżety dają użytkownikom dostęp do określonych zadań w aplikacji i można je dodawać do ekranu głównego bezpośrednio z aplikacji, jak pokazano na tym filmie.

Przykład przypinania widżetu
Rysunek 1. Przykład przypinania widżetu.

Zezwalanie użytkownikom na przypinanie widżetu

W aplikacji możesz utworzyć żądanie przypięcia widżetu przez system do obsługiwanego programu uruchamiającego. Aby to zrobić:

  1. Upewnij się, że deklarujesz widżet w pliku manifestu aplikacji.

  2. Wywołaj metodę requestPinAppWidget(), jak pokazano w tym fragmencie kodu:

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 or PendingIntent.FLAG_IMMUTABLE
    )

    appWidgetManager.requestPinAppWidget(myProvider, null, successCallback)
}

Użytkownicy mogą znaleźć i dodać widżet za pomocą selektora widżetów lub z poziomu aplikacji, gdy funkcje widżetu są najbardziej przydatne. Więcej informacji znajdziesz w artykule Odkrywanie i promowanie.