有时候我们的应用里需要调用别人已经写好的应用(前提是用户手机上已经安装)。自己的应用A调用自己的应用B,有比较多的方法,例如,在被调用的应用B的Activity内,设置Intent-filter,然后直接使用Intent调用。这些后面再讲,本讲先讲如何调用第三方应用,例如:百度云盘。
调用第三方应用需要知道两个参数(这里需要先对第三方应用的AndroidManifest.xml文件进行解析,有点破解的味道):
第三方应用的包名;
第三方应用内的Activity类名(可以根据自己的需要选择,一般选择最先启动的Activity)。
之后就可以调用如下代码启动第三方应用:
代码如下:
ComponentName componentName = new ComponentName(pkg, cls);
Intent intent = new Intent();
intent.setComponent(componentName);
startActivity(intent);
注:接写AndroidManifest.xml文件可以使用:http://code.google.com/p/xml-apk-parser/
使用方法:
AXMLPrinter2只能解析二进制的xml文件:
代码如下:
java -jar AXMLPrinter.jar <二进制xml文件名>
解析AndroidManifest.xml文件:
代码如下:
java -jar APKParser.jar <apk文件名>