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

Posted jamesK4W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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启动第三方应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Android 调用手机浏览器的正确方式

aar依赖 与 intent aar中的activity

android中 activity1中启动了activity2, activity2中启动了activity3,怎么把activity3中的值直接返回给

Android 重学系列 WMS在Activity启动中的职责 计算窗体的大小(四)

学习笔记Android中的Activity启动模式

android中的activity的启动方式有哪几种