在 Android 中共享快捷方式
随着 Android Q 及其惊人功能的发布,它还引入了共享快捷方式。在 Q 中,直接共享 API 已被共享快捷方式 API 取代。
从简单端接收数据
一个应用程序不仅可以向其他应用程序传输数据,还可以从其他应用程序接收数据。考虑用户如何与您的应用交互,以及您希望从其他应用收集哪些数据类型。例如,社交网络应用程序可能有兴趣从另一个应用程序接收文本信息,例如有趣的站点 URL。 Android Q 中引入了共享快捷方式,这是一种从您的应用程序共享材料的更快捷方式。将其视为类固醇上的直接共享。这篇文章将解释两者之间的区别以及如何使用共享快捷方式。
制定出色的股票目标?
用户会经常通过 Android Sharesheet 或 Intent 解析器向您的应用提供数据。所有接收到的数据的 MIME 类型由提供它的应用程序确定。您的应用可以通过三种方式接受另一个应用提供的数据:
- 清单中具有匹配的意图过滤器标记的 Activity
- 一个或多个 ChooserTarget 对象由您的应用的 ChooserTargetService 共享快捷方式返回。
- 这些优先于 ChooserTarget 对象。
- 只有当您的应用在 Android 10 或更高版本(API 级别 29)上运行时,才能访问共享快捷方式。
除此之外,究竟什么是选择服务?
例如,当用户希望从应用程序共享文本信息时,就会显示共享表。在工作表准备过程中,系统会请求特定的选择器服务以获取选择器目标列表,该列表可以是您设备上定期通过电子邮件发送的联系人、最近活跃的群组消息讨论或任何其他相关项目。
从技术上讲,选择器服务是一种 Android 服务,当用户明确请求另一个应用程序选择一个意图的目标时,系统会调用该服务,它提供一个选择器目标列表,该列表可以深度链接到所选应用程序。
当另一个应用程序尝试通过创建意图并将其提供给 startActivity() 来共享这些项目中的任何一个时,您的应用程序将显示为 Android Sharesheet 或意图解析器中的一个选项。如果用户选择您的应用程序,将启动关联的活动(前面示例中的 .ui.MyActivity)。然后由您来正确管理代码和 UI 中的材料。 App Manifest 应包含使用兼容库操作所需的元数据。这样做:
...
照顾传入的东西
处理Intent给定的素材,使用getIntent()获取Intent对象。获得该对象后,您可以研究其内容以确定下一步该做什么。请记住,如果此活动可能从系统的其他区域(例如启动器)启动,则在分析目的时必须考虑到这一点。
GeekTip: When a shortcut is set to be long-lived, system services can continue to retrieve it from the cache even after it has been deleted as of a dynamic shortcut.
现在,要进行测试,只需分享一个文本,然后在示例应用程序中,您将看到弹出的快捷方式!
![](https://mangodoc.oss-cn-beijing.aliyuncs.com/geek8geeks/Sharing_Shortcuts_in_Android_0.jpg)
图 1. 分享快捷方式