我该如何确定第三方应用程序支持哪些意图?

3
我希望能够调用第三方应用程序来增强我的应用。例如,我想允许我的应用用户使用像CamScanner这样的程序来捕捉图像,作为相机的替代品。我想能够建议推荐的第三方应用程序作为意图替代品,为我的应用程序带来更好的功能。
在安装后是否有公共清单或更好的指示在Play市场页面上显示应用程序支持的Intents?
3个回答

3

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

无论如何,您都可以调用它们的主要活动,就像这样:

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

现在,那些没有明确记录的非主要活动就另当别论了。即使你得到清单文本,这也可能或可能不会帮助你找出调用协议;该活动可能依赖于清单中未提及的意图附加项。
而且无论如何,你永远不知道应用程序中的活动是否依赖于特定的调用顺序。除非一个活动是专门为第三方重用而构建的,否则你永远不知道它是否准备好被重用。我可以很容易地想象这样一种情况:一个活动依赖于在另一个活动中初始化的静态变量,该活动总是在应用程序的正常流程中首先启动。如果你按照错误的顺序调用相关活动,那么就要准备好应用崩溃。
话虽如此,获取应用程序的XML清单还是相当容易的。首先,获取一个带有Google Market的模拟器映像(搜索一下,在网络上到处都是),或者一个已经root过的设备。从市场安装应用程序。使用ADB或Eclipse从设备中拉取APK。然后使用apktool将APK拆开。它将清单反编译为可读的XML形式。

2
您可以在普通设备上使用Sony的AppXplore应用程序,无需root即可获取其他应用程序的AndroidManifest.xml。 - Yenchi

3

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接