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 umożliwiają użytkownikom dostęp do określonych zadań w aplikacji i można je dodać do ekranu głównego bezpośrednio z aplikacji, jak pokazano na poniższym filmie.

Umożliwianie użytkownikom przypinania widżetu
W aplikacji możesz utworzyć prośbę o przypięcie widżetu do obsługiwanego programu uruchamiającego, wykonując te czynności:
Upewnij się, że zadeklarujesz widżet w pliku manifestu aplikacji.
Wywołaj metodę
requestPinAppWidget()
, jak pokazano w tym fragmencie kodu:
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); }
Wskazówki dotyczące projektowania
Użytkownicy mogą odkrywać i dodawać widżet za pomocą selektora widżetów lub w Twojej aplikacji, gdy jego funkcje są najbardziej przydatne. Więcej informacji znajdziesz w sekcji Odkrywanie i promowanie.