Подтвердить что ты не робот

Как добавить виджет на главный экран Android из моего приложения?

Я пишу приложение, которое должно иметь возможность добавлять виджеты (только текстовые поля) на главный экран пользовательского телефона, когда пользователь инструктирует мое приложение для этого. Как я могу это сделать?

Я знаю, что я могу добавить виджет приложения, но как добавить больше?

4b9b3361

Ответ 1

Из приложения невозможно разместить виджет на главном экране. Только домашний экран может добавлять виджеты приложений на домашний экран.

похожие ссылки ссылка1, ссылка2, ссылка3

Но вы можете предложить пользователю выбрать виджет из виджета.

    Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID);
    startActivityForResult(pickIntent, KEY_CODE);

Ответ 2

На этот вопрос давным-давно был дан ответ, но на тот случай, если кто-нибудь наткнется на этот вопрос, я подумал, что должен дать актуальный ответ.

Начиная с Android O (API 26), теперь вы можете прикреплять виджеты к панели запуска пользователя из вашего приложения!

Просто создайте виджет в файле AndroidManifest вашего приложения и используйте AppWidgetManager, чтобы запросить закрепление виджета на панели запуска. Обратите внимание, что поддержка этой функции зависит от модуля запуска, поэтому перед запросом закрепления необходимо вызвать метод AppWidgetManager isRequestPinAppWidgetSupported().

Вот некоторая документация от Google, которая идет более подробно: https://developer.android.com/preview/features/pinning-shortcuts-widgets.html#widgets

Надеюсь это поможет!

Изменение: Похоже, что страницы документации изменились, так как я опубликовал этот ответ. Вот более полезная ссылка, которая дает пример кода, как закрепить виджет на панели запуска: https://developer.android.com/guide/topics/appwidgets/#Pinning

Ответ 3

Приложение Launcher по умолчанию для AFAIK не поддерживает это. Причина в том, что пользователь должен размещать все на своем домашнем экране. Разрешение на размещение виджетов из приложения откроет двери для приложений, чтобы "спамить" пользовательский дом с помощью "полезных" виджетов.