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

17

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

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

    
задан Adam Arold 19.04.2013 в 10:59
источник
  • Возможный дубликат привязки AppWidgets к AppWidgetHost - Android –  rds 30.06.2016 в 19:46
  • @rds Похоже, что это действительно должно быть целью обмана для другого. У этого есть более полезные ответы, и он был просмотрен примерно в два раза больше, чем другой. См. Здесь: meta.stackoverflow.com/questions/252929/... –  Daniel Nugent 01.07.2016 в 01:27
  • Как добавить виджет приложения? Мне это нужно, но я не знаю, как это сделать. –  Mir-Ismaili 26.12.2016 в 16:46

3 ответа

23

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

похожие ссылки link1 , link2 , link3

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

    Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID);
    startActivityForResult(pickIntent, KEY_CODE);
    
ответ дан stinepike 19.04.2013 в 11:06
  • @AdamArold Если вы хотите, чтобы пользователь решил добавить виджет, я думаю, что ответ StineSpike правильный. Может быть, вы должны принять его ответ? –  Jose_GD 23.08.2013 в 15:57
  • Хорошо. Я полностью забыл об этом вопросе. –  Adam Arold 23.08.2013 в 16:03
  • Как вы получаете AppWidgetID и KEY_CODE? –  StackOverflowed 18.09.2013 в 14:02
  • Можете ли вы «направить» сборщик на ваш виджет с дополнительным пакетом или чем-то похожим? –  Andrew Mackenzie 24.11.2013 в 14:03
  • Сборщик не работает для меня. Похоже, но когда вы ничего не делаете, я пробовал пару вещей для EXTRA_APPWIDGET_ID, но не повезло. Я предполагаю, что моя проблема в том, что мое приложение не является программой запуска, а обычным приложением с виджетами. –  madlymad 21.08.2015 в 16:57
Показать остальные комментарии
5

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

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

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

Ниже приведена подробная документация от Google: Ссылка

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

    
ответ дан DalvikDroid 14.06.2017 в 05:28
2

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

    
ответ дан Juozas Kontvainis 19.04.2013 в 11:06
  • Я пытаюсь написать его так, чтобы взаимодействие пользователя было необходимо для размещения виджета. –  Adam Arold 19.04.2013 в 11:08