首页 > 代码库 > 如何在Android中的Activity启动第三方应用程序?

如何在Android中的Activity启动第三方应用程序?

如何在点击某个按键后,执行启动第三方应用程序界面?

/**
     * <功能描述> 启动应用程序
     * 
     * @return void [返回类型说明]
     */
    private void startUpApplication(String pkg) {
        PackageManager packageManager = mContext.getPackageManager();
        PackageInfo packageInfo = null;
        try {
            // 获取指定包名的应用程序的PackageInfo实例
              packageInfo = packageManager.getPackageInfo(pkg, 0);
        } catch (NameNotFoundException e) {
            // 未找到指定包名的应用程序
              e.printStackTrace();
            // 提示没有GPS Test Plus应用
              Toast.makeText(mSptActivity,
                    mSptActivity.getString(R.string.gps_no_test_plus),
                    Toast.LENGTH_SHORT).show();
            return;
        }
        if (packageInfo != null) {
            // 已安装应用
              Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
            resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            resolveIntent.setPackage(packageInfo.packageName);
            List<ResolveInfo> apps = packageManager.queryIntentActivities(
                    resolveIntent, 0);
            ResolveInfo ri = null;
            try {
                ri = apps.iterator().next();
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
            if (ri != null) {
                // 获取应用程序对应的启动Activity类名
                  String className = ri.activityInfo.name;
                // 启动应用程序对应的Activity
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                ComponentName componentName = new ComponentName(pkg, className);
                intent.setComponent(componentName);
                mContext.startActivity(intent);
            }
        }
    }

想要打开指定包名的应用时,提供包名即可:

// Gps Test Plus应用程序包名
startUpApplication("com.chartcross.gpstestplus");

上述的字符串:com.chartcross.gpstestplus即是Google提供的GPS Test Plus应用的包名。

 

疑问:

1. 现实情况是:可能在第一次刷机后,无法启动应用。如何解决此问题?

2. 留给未来…

如何在Android中的Activity启动第三方应用程序?