2013-04-19 2 views
17

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

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

+0

Возможный дубликат [Binding AppWidgets to AppWidgetHost - Android] (http://stackoverflow.com/questions/4258579/binding-appwidgets-to-appwidgethost-android) – rds

+0

@rds Похоже, что это действительно должно быть целью обмана для другого. У этого есть более полезные ответы, и он был просмотрен примерно в два раза больше, чем другой. См. Здесь: http://meta.stackoverflow.com/questions/252929/which-question-is-the-better-reference-for-a-duplicate –

+0

Как можно добавить ** виджет App **? Мне это нужно, но я не знаю, как это сделать. –

ответ

24

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

подобные ссылки link1, link2, link3

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

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

Я читал его в нескольких местах, где это возможно (здесь, на SO), но никто не объяснил, как это сделать. –

+0

см. Мой отредактированный ответ. .. также в link2 Марк Мерфи сказал, что невозможно автоматически разместить виджет дома .... – stinepike

+0

Как я уже сказал, я не хочу автоматически добавлять виджеты, но пусть пользователь решил добавить их. –

2

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

+0

Я пытаюсь написать его так, чтобы взаимодействие пользователя было необходимо для размещения виджета. –

3

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

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

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

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

Надеется, что это помогает!

Смежные вопросы