20

我正在编写一个应用程序,当用户指示我的应用程序这样做时,它应该能够将小部件(只是文本框)添加到用户手机的主屏幕。我怎么能做这样的事情?

我知道我可以添加一个应用小部件,但是添加更多呢?

4

3 回答 3

29

无法从应用程序将小部件放置在主屏幕中。只有主屏幕可以将应用小部件添加到主屏幕。

相似链接link1 , link2 , link3

但是您可以让用户从 widgetpicker 中选择小部件。

    Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID);
    startActivityForResult(pickIntent, KEY_CODE);
于 2013-04-19T09:06:27.783 回答
14

这是很久以前回答的,但如果有人偶然发现这个问题,我认为我应该提供一个最新的答案。

从 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

于 2017-06-14T03:28:06.350 回答
2

AFAIK 默认启动器应用程序不支持此功能。原因是用户应该自己将所有内容放在主屏幕上。允许从应用程序中放置小部件将为应用程序使用其“有用的”小部件向用户的家“发送垃圾邮件”打开大门。

于 2013-04-19T09:06:53.803 回答