Android 启动第三方应用

来源:互联网 发布:网络挣钱 编辑:程序博客网 时间:2024/06/03 02:41

有时我们想在自己的应用中去启动第三方应用,该怎么实现呢?

每个应用都有一个主activity,也就是在点击桌面点击图标的时候第一个启动的activity,这activity有个特点,它在AndroidManifest.xml中配置IntentFilter的时候既配了android.intent.action.MAIN,又配置了android.intent.category.LAUNCHER,所以可以根据这个特点通过java代码去调用这个activity。下面直接上个简单的例子。

来个例子:

1. 第三方应用的主activity在AndroidManifest.xml配置如下所示:

<activity    android:name="com.cjl.myapp.MainActivity"    android:hardwareAccelerated="false"    android:launchMode="singleTop"    android:screenOrientation="portrait"    android:theme="@style/AppTheme">        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter></activity>

2. 在我们自己的应用中直接调用以下方法即可启动第三方应用

public static void startMainActivity(final Context context, String packageName) {    PackageManager pm = context.getPackageManager();    PackageInfo packageInfo = null;    try {        packageInfo = pm.getPackageInfo(packageName, 0);        Intent intent = new Intent(Intent.ACTION_MAIN, null);        intent.addCategory(Intent.CATEGORY_LAUNCHER);        intent.setPackage(packageInfo.packageName);        List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);        ResolveInfo resolveInfo = apps.iterator().next();        if (resolveInfo != null) {            String className = resolveInfo.activityInfo.name;            intent.setComponent(new ComponentName(packageName, className));            context.startActivity(intent);        }    } catch (NameNotFoundException e) {    }}

3. 调用方法:

startMainActivity(this, "com.cjl.myapp");
0 0
原创粉丝点击