قابلیت کشف ویجت

در دستگاه‌های دارای Android 8.0 (سطح API 26) و بالاتر، راه‌اندازهایی که به کاربران اجازه می‌دهند میانبرهای پین شده ایجاد کنند، به آنها اجازه می‌دهند ویجت‌ها را به صفحه اصلی خود پین کنند. مانند میانبرهای پین شده، این ویجت‌های پین شده به کاربران امکان دسترسی به وظایف خاص در برنامه شما را می‌دهند و می‌توانند مستقیماً از برنامه به صفحه اصلی اضافه شوند، همانطور که در ویدیوی زیر نشان داده شده است.

نمونه ای از طرح بندی واکنش گرا
شکل 2. نمونه ای از پین کردن یک ویجت.

به کاربران اجازه دهید ویجت را پین کنند

در برنامه خود، می‌توانید با انجام مراحل زیر درخواستی برای سیستم ایجاد کنید تا ویجت را به یک راه‌انداز پشتیبانی‌شده پین ​​کند:

  1. مطمئن شوید که یک ویجت را در فایل مانیفست برنامه خود اعلام کرده اید.

  2. همانطور که در قطعه کد زیر نشان داده شده است، متد requestPinAppWidget() را فراخوانی کنید:

کاتلین

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)
}

جاوا

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);
}

هنگامی که عملکرد ویجت بسیار مرتبط است، کاربران ویجت شما را از طریق انتخابگر ویجت یا از داخل برنامه شما کشف و اضافه می کنند. برای اطلاعات بیشتر، به کشف و تبلیغ مراجعه کنید.