【问题标题】:Intent Filters: How to create filter for all the Android versions (since the manufacters change it)意图过滤器:如何为所有 Android 版本创建过滤器(因为制造商更改了它)
【发布时间】:2014-07-16 14:33:25
【问题描述】:

我想构建一个将内容提供给其他应用程序的应用程序。

举个例子

使用本机消息应用程序附加来自我的提供商的图像。

为了成为提供者,我注册了一些意图过滤器来做到这一点。我将 ACTION_GET_CONTENT 与图像/ MIME 类型一起使用。*

我注意到在某些设备中,这可以按预期工作,从“使用完整操作”对话框的列表中选择应用程序。

但是,一些制造商,显然似乎没有遵守 Google 的“建议”

我们如何注册那些没有的?

我假设其中一些使用隐式意图调用,是否也可以拦截?

另一方面,如果这些意图是明确提出的,是否可以“拦截”它们并呈现“使用完整操作”对话框?

【问题讨论】:

  • 根据我的经验,大多数时候我们都必须忍受这些差异。如果原始设备制造商搞砸了,我们无能为力。编写应用时应牢记应如何工作,并且仅在相当大一部分目标受众拥有“受影响”设备时才例外。

标签: android android-intent intentfilter


【解决方案1】:

1) 如果您的问题是“如何拦截具有不同(非标准名称)的意图”,您可以使用intent intercept app 找出所需的意图设置。

2) 如果您的问题是“如何拦截不是为被拦截而进行的活动”,我担心你不能。

我使用 (1) 方法来了解如何拦截 googles-android-2.2-calendar-show-event,该事件在 4.0 之前的版本中正式不受支持,但有效(至少在我的手机上)。

我有 googles-android-4.4-calendar-show-event 的 (2) 问题,它应该是可拦截的,但不是。它在 4.4 之前的版本中是可拦截的。

【讨论】:

  • 我已经使用该应用程序来检查隐式意图,但没有任何运气。未显示完整的操作对话框,目标活动立即打开。我可以安全地假设在这些情况下,意图是使用自定义设置(操作、mime 类型、类别等)显式或隐式调用的吗?
  • 如果你的意思是“但没有运气”intent intercept 没有打开:我认为它要么无法拦截,要么用户在“完成操作”中按下了“始终”按钮对话”。如果我错了,请纠正我(我可以从我的回答中解决问题(2))。
  • 是的,它不会随您指出的应用程序一起打开。默认值没有像往常一样设置。排除可能性,似乎我们处于这两种可能性中:显式意图或具有自定义设置的隐式意图。同意吗?
猜你喜欢
  • 2014-01-06
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多