自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
widget 和快捷方式
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
借助 Android 8.0 中新增的用于添加快捷方式和 widget 的流程 API,应用开发者可以从应用内添加快捷方式和 widget,而不需要依靠 widget 面板。出于安全考虑,Android 8.0 还废弃了用于添加快捷方式的旧方法(发送广播)。
启动器需要支持这种新的实现,以便应用开发者可以依靠系统来添加其快捷方式或微件。
示例和源代码
有关于各种系统类的文档可供参考。参考资料包括:
- ShortcutManager.java
在标题中发布已固定的快捷方式部分。
- Intent.java
关于 ACTION_CREATE_SHORTCUT 的 Javadoc。
- AppWidgetManager.java
关于 requestPinAppWidget 的 Javadoc。
实现
设备实现者需要通过 intent 过滤器操作在其启动器中添加一个 Aactivity:
android.content.pm.action.CONFIRM_PIN_SHORTCUT
android.content.pm.action.CONFIRM_PIN_APPWIDGET
如需更多详细信息,请参阅 API 文档。
该 activity 应向用户显示关于添加请求的 widget/快捷方式的确认提示,并在用户接受后,在主屏幕上添加相应的 widget/快捷方式。
对于 widget,accept()
调用应包含新添加 widget 的 ID。
实现系统界面
合作伙伴需要参考 Launcher3 实现 (packages/apps/Launcher3
) 来更新其启动器应用。
在 Android 开源项目 (AOSP) 中查找相关的 Launcher3 更改:
验证
如需验证该功能,请尝试从 Chrome 或通讯录应用添加快捷方式,并验证系统是否会显示正确的确认提示。在接受提示后,图标应已添加到主屏幕上,并且 Chrome 应显示一个提示添加成功的消息框。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# Widgets and shortcuts\n\nThe new flow API for adding shortcuts and widgets in Android 8.0 allows\napp developers to add shortcuts and widgets from inside the app instead\nof relying on the widget tray. It also deprecates the old method (sending a\nbroadcast) of adding shortcuts for security reasons.\n\n\nLaunchers need to support this new implementation so that app developers can\nrely on the system to add their shortcut or widget.\n\nExamples and source\n-------------------\n\n\nDocs are available in various system class. References include the following:\n\n- **[ShortcutManager.java](https://developer.android.com/reference/android/content/pm/ShortcutManager.html)** \n Publish Pinned shortcut section in header.\n- **Intent.java** \n Javadoc for ACTION_CREATE_SHORTCUT.\n- **AppWidgetManager.java** \n Javadoc for requestPinAppWidget.\n\nImplementation\n--------------\n\n\nDevice implementers need to add an activity in their launcher with intent filter actions:\n\n- `android.content.pm.action.CONFIRM_PIN_SHORTCUT`\n- `android.content.pm.action.CONFIRM_PIN_APPWIDGET`\n\n\nRefer to the [API\ndocumentation](https://developer.android.com/reference/android/content/pm/LauncherApps.html) for more details.\n\n\nThis activity should display a confirmation prompt to the user to add the [requested\nwidget/shortcut](https://developer.android.com/reference/android/content/pm/LauncherApps.html) and upon accepting, add the corresponding widget/shortcut on\nthe homescreen.\n\n\nIn case of widgets, the `accept()` call should include the widget ID\nof the newly added widget.\n\n### Implementing a System UI\n\n\nPartners need to update their Launcher app using the Launcher3 implementation\n(`packages/apps/Launcher3`) as reference.\n\n\nFind the relevant Launcher3 changes in the Android Open Source Project (AOSP):\n\n- Change-Id: [8b2002e28072c52d78f6d052c6ff6da50a2d0324](https://android.googlesource.com/platform/packages/apps/Launcher3/+/8b2002e28072c52d78f6d052c6ff6da50a2d0324)\n- Change-Id: [278359539c02ca160caf1df54ce96053a2a2ef59](https://android.googlesource.com/platform/packages/apps/Launcher3/+/278359539c02ca160caf1df54ce96053a2a2ef59)\n\nValidation\n----------\n\n\nTo validate the feature, try to add shortcuts from Chrome or the Contacts app\nand verify that a proper confirmation prompt is shown. Upon accepting, the icon\nshould get added on the homescreen and Chrome should display a success toast."]]