ComponentName cn = new ComponentName(packageName, className)
intent.setComponent(cn)
startActivity(intent)
2.如果你只知道包名不知道类名,首先获取类名
private void openApp(String packageName) {PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0)
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null)
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER)
resolveIntent.setPackage(pi.packageName)
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0)
ResolveInfo ri = apps.iterator().next()
if (ri != null ) {
String packageName = ri.activityInfo.packageName
String className = ri.activityInfo.name
Intent intent = new Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_LAUNCHER)
ComponentName cn = new ComponentName(packageName, className)
intent.setComponent(cn)
startActivity(intent)
}
}
然后使用1中的方法调用程序
生成一个要被调用的APK。在其Manifest.xml设置中,与一般的写法大致相同,唯一区别的地方在于-->安装这个要被调用的APK。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"testApp",所以,这里用这个字符串就可以调用它了在另一个项目中调用上述APK。代码如下java">Intentintent=newIntent("testApp")startActivity(intent)启动另外一个apkjava">IntentmIntent=newIntent()ComponentNamecomp=newComponentName(packageName,activityName)mIntent.setComponent(comp)mIntent.setAction("android.intent.action.VIEW")startActivity(mIntent)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)