Android 8.0 (API düzeyi 26) ve sonraki sürümleri çalıştıran cihazlarda, kullanıcıların sabitlenmiş kısayollar oluşturmasına olanak tanıyan başlatıcılar ayrıca widget'ları ana ekranlarına sabitlemelerine olanak tanır. Sabitlenmiş kısayollara benzer şekilde, bu sabitlenmiş widget'lar kullanıcıların uygulamanızdaki belirli görevlere erişmesine olanak tanır ve aşağıdaki videoda gösterildiği gibi doğrudan uygulama üzerinden ana ekrana eklenebilir.
![Duyarlı düzen örneği](https://developer.android.com/static/images/appwidgets/widget_pinning.gif?authuser=5&hl=tr)
Kullanıcıların widget'ı sabitlemesine izin verme
Uygulamanızda, aşağıdaki adımları uygulayarak sistemin bir widget'ı desteklenen bir başlatıcıya sabitlemesi için istek oluşturabilirsiniz:
Uygulamanızın manifest dosyasında bir widget bildirdiğinizden emin olun.
Aşağıdaki kod snippet'inde gösterildiği gibi
requestPinAppWidget()
yöntemini çağırın:
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); }
İlgili tasarım kılavuzu
Kullanıcılar, widget'ınızı widget seçici aracılığıyla veya widget'ın işlevi en alakalı olduğunda uygulamanızın içinden keşfeder ve eklerler. Daha fazla bilgi için Keşif ve tanıtım bölümünü inceleyin.