Na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym aplikacje uruchamiające, które pozwalają użytkownikom tworzyć przypięte skróty, pozwalają też przypinać widżety do ekranu głównego. Podobnie jak w przypadku przypiętych skrótów, te przypięte widżety dają użytkownikom dostęp do określonych zadań w aplikacji i można je dodać do ekranu głównego bezpośrednio z aplikacji, jak widać w filmie poniżej.
Umożliwianie użytkownikom przypinania widżetu
Możesz utworzyć w aplikacji prośbę o przypięcie widżetu do obsługiwanego programu uruchamiającego, wykonując te czynności:
Pamiętaj, by zadeklarować widżet w pliku manifestu aplikacji.
Wywołaj metodę
requestPinAppWidget()
zgodnie z poniższym fragmentem 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); }
Powiązane wskazówki dotyczące projektowania
Użytkownicy odkrywają i dodają widżet za pomocą selektora widżetów lub aplikacji, jeśli jego funkcje są najbardziej przydatne. Więcej informacji znajdziesz w artykule na temat odkrywania i promocji.