zoukankan      html  css  js  c++  java
  • 如何在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. 留给未来…

  • 相关阅读:
    Q12:app在iPhone上执行正常,iPad上出现黑边问题解决方式
    SPOJ 104 Highways 最小生成树计数
    微信支付 常见报错
    oracle创建表空间、用户、和权限配置
    Android Matrix图像变换处理
    java项目部署到weblogic上后,某些浏览器无法取得session值
    简介redis以及ubuntu和windows下怎样安装redis和配置文件具体解释
    Melo作为程序猿的2016年
    软件架构,WEB
    软件架构,WEB
  • 原文地址:https://www.cnblogs.com/CVstyle/p/6345094.html
Copyright © 2011-2022 走看看