• 如何在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 判断网络是否断开
    U5
    android 界面跳转
    光影魔术手 图片压缩
    服务器绑定 独立ip
    Java 开源 SOCKET 框架
    spring aop ehcache
    呼叫中心
    华丽字体
  • 原文地址:https://www.cnblogs.com/CVstyle/p/6345094.html
Copyright © 2020-2023  润新知