打开第三方应用

来源:互联网 发布:js数组的方法 编辑:程序博客网 时间:2024/05/16 11:36

判断是否已安装对应应用

    private boolean isInstall(Context context, String packageName) {        final PackageManager packageManager = context.getPackageManager();//获取packagemanager        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息        List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名        //从pinfo中将包名字逐一取出,压入pName list中        if (pinfo != null) {            for (int i = 0; i < pinfo.size(); i++) {                String pn = pinfo.get(i).packageName;                pName.add(pn);            }        }        return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE    }    private boolean isPkgInstalled(String pkgName) {        PackageInfo packageInfo = null;        try {            packageInfo = this.getPackageManager().getPackageInfo(pkgName, 0);        } catch (PackageManager.NameNotFoundException e) {            packageInfo = null;            e.printStackTrace();        }        if (packageInfo == null) {            return false;        } else {            return true;        }    }


打开或是下载


    public void open() {                //已安装,打开程序,需传入参数包名:"com.tencent.mm"        if (isInstall(this, "com.tengdi.mobilelaw.mobile.NJ")) {            Intent intent = new Intent();            ComponentName cn = new ComponentName("com.tengdi.mobilelaw.mobile.NJ",                    "com.tengdi.mobilelaw.mobile.NJ.MainActivity");            intent.setComponent(cn);            startActivityForResult(intent, RESULT_OK);        }        //未安装,跳转至market下载该程序        else {            Uri uri = Uri.parse("market://details?id=com.tencent.mm");//id为包名            // 直接从指定网址下载            // Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk");            Intent it = new Intent(Intent.ACTION_VIEW, uri);            startActivity(it);        }    }


原创粉丝点击