📜  在 Android 中共享快捷方式

📅  最后修改于: 2022-05-13 01:57:09.847000             🧑  作者: Mango

在 Android 中共享快捷方式

随着 Android Q 及其惊人功能的发布,它还引入了共享快捷方式。在 Q 中,直接共享 API 已被共享快捷方式 API 取代。

从简单端接收数据

一个应用程序不仅可以向其他应用程序传输数据,还可以从其他应用程序接收数据。考虑用户如何与您的应用交互,以及您希望从其他应用收集哪些数据类型。例如,社交网络应用程序可能有兴趣从另一个应用程序接收文本信息,例如有趣的站点 URL。 Android Q 中引入了共享快捷方式,这是一种从您的应用程序共享材料的更快捷方式。将其视为类固醇上的直接共享。这篇文章将解释两者之间的区别以及如何使用共享快捷方式。

制定出色的股票目标?

用户会经常通过 Android Sharesheet 或 Intent 解析器向您的应用提供数据。所有接收到的数据的 MIME 类型由提供它的应用程序确定。您的应用可以通过三种方式接受另一个应用提供的数据:

  1. 清单中具有匹配的意图过滤器标记的 Activity
  2. 一个或多个 ChooserTarget 对象由您的应用的 ChooserTargetService 共享快捷方式返回。
  3. 这些优先于 ChooserTarget 对象。
  4. 只有当您的应用在 Android 10 或更高版本(API 级别 29)上运行时,才能访问共享快捷方式。

    
        
        
        
    
    
        
        
        
    

除此之外,究竟什么是选择服务?

例如,当用户希望从应用程序共享文本信息时,就会显示共享表。在工作表准备过程中,系统会请求特定的选择器服务以获取选择器目标列表,该列表可以是您设备上定期通过电子邮件发送的联系人、最近活跃的群组消息讨论或任何其他相关项目。

从技术上讲,选择器服务是一种 Android 服务,当用户明确请求另一个应用程序选择一个意图的目标时,系统会调用该服务,它提供一个选择器目标列表,该列表可以深度链接到所选应用程序。


  
  
  

当另一个应用程序尝试通过创建意图并将其提供给 startActivity() 来共享这些项目中的任何一个时,您的应用程序将显示为 Android Sharesheet 或意图解析器中的一个选项。如果用户选择您的应用程序,将启动关联的活动(前面示例中的 .ui.MyActivity)。然后由您来正确管理代码和 UI 中的材料。 App Manifest 应包含使用兼容库操作所需的元数据。这样做:


    ...
    

照顾传入的东西

处理Intent给定的素材,使用getIntent()获取Intent对象。获得该对象后,您可以研究其内容以确定下一步该做什么。请记住,如果此活动可能从系统的其他区域(例如启动器)启动,则在分析目的时必须考虑到这一点。

现在,要进行测试,只需分享一个文本,然后在示例应用程序中,您将看到弹出的快捷方式!

图 1. 分享快捷方式