有的时候,项目会需要调用别人的应用程序,比如拨号、短信什么的(都是现在rom改的太多了,这些基础应用都一样,碎片化太严重),下面我给出两种方法来实现:
一、通过packmanager的getLaunchIntentForPackage方法
PackageManager packageManager = MainActivity.this.getPackageManager();
Intent intent=new Intent();
try {
intent =packageManager.getLaunchIntentForPackage("要调用应用的包名");
} catch (NameNotFoundException e) {
Log.i(TAG, e.toString());
}
startActivity(intent);
这个比较简单,包名的话,可以根据packagemanager获取到packageInfo,最后还可以根据intent获取到componentname。
二、通过intent的resolveActivity方法
Intent it = new Intent(Intent.ACTION_MAIN);
it.setPackage(pkg);//pkg为包名
it.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName ac = it.resolveActivity(mPackageManager);//mPackageManager为PackageManager实例
String classname =ac.getCla