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

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

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

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

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

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

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