下面是一个在一个应用程序里面启动另外一个已经安装的程序,如下:
[javascript]
//组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activity
ComponentName com = new ComponentName("com.antroid.Test", "com.antroid.Test.TestActivity")
Intent intent = new Intent()
//设置部件
intent.setComponent(com)
startActivity(intent)
//组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activity
ComponentName com = new ComponentName("com.antroid.Test", "com.antroid.Test.TestActivity")
Intent intent = new Intent()
//设置部件
intent.setComponent(com)
startActivity(intent)
我们也可以使用下面的代码启动系统的日历程序:
[javascript]
Intent intent=new Intent()
intent.setComponent(new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity"))
startActivity(intent)
Intent intent=new Intent()
intent.setComponent(new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity"))
startActivity(intent
如果你知道另外一个程序的类名就可以这样写
intent.addCategory(Intent.CATEGORY_LAUNCHER)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中的方法调用程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)