如何确定第三方应用支持的Intent?

时间:2012-08-24 14:35:15

标签: android android-intent google-play

我想调用第三方应用来增强自己的功能。例如,我想允许我的应用的用户使用CamScanner之类的程序来捕捉图像作为相机的替代品。我希望能够推荐推荐的第三方应用程序,它们可以作为替代方案,为我的应用程序带来更好的功能。

安装后是否有公开清单,或者在应用的Play市场页面中有更好的显示,显示它支持哪个Intents

3 个答案:

答案 0 :(得分:3)

您可以从系统设置/应用程序屏幕了解活动名称。

无论如何,你都可以调用他们的主要活动,如下所示:

startActivity(getPackageManager().getLaunchIntentForPackage("com.theirpackage"));

现在,未明确记录的非主要活动是另一回事。即使您获得清单文本,这可能会或可能不会帮助您找出调用协议;活动可能依赖于清单没有说明的意图额外内容。

无论如何,你永远不知道应用程序中的活动是否依赖于某种调用顺序。除非明确为第三方重用而构建活动,否则您永远不知道它是否已准备好重用。我可以轻松地设想一个活动依赖于在另一个活动中初始化的静态变量的场景,该活动始终首先在应用程序的正常流程中启动。如果您不按顺序调用依赖活动,请准备好崩溃。

也就是说,获取应用程序的XML清单相当容易。首先,在其中获取带有Google Market的模拟器图像(搜索周围,这些都在'网络上)或根设备。从市场安装应用程序。使用ADB或Eclipse从设备中提取APK。然后使用apktool将APK分开。它将清单反编译为可读的XML格式。

答案 1 :(得分:3)

http://openintents.org - 如果它列在那里。

答案 2 :(得分:0)

如果是CamScanner应用程序,它存在一个公共API。 https://dev.camscanner.net/

需要签署协议。