Android 跳转应用商店下载APP

1.添加在在需要判断的地方页面,任意位置

/**

    * 判断应用市场是否存在的方法

    *

    * @param context

    * @param packageName

    *

    * 主流应用商店对应的包名

    * com.android.vending    -----Google Play

    * com.tencent.android.qqdownloader    -----应用宝

    * com.qihoo.appstore    -----360手机助手

    * com.baidu.appsearch    -----百度手机助

    * com.xiaomi.market    -----小米应用商店

    * com.wandoujia.phoenix2    -----豌豆荚

    * com.huawei.appmarket    -----华为应用市场

    * com.taobao.appcenter    -----淘宝手机助手

    * com.hiapk.marketpho    -----安卓市场

    * cn.goapk.market        -----安智市场

    */

    public static boolean isAvilible(Context context, String packageName) {

        // 获取packagemanager

        final PackageManager packageManager = context.getPackageManager();

        // 获取所有已安装程序的包信息

        List pinfo = packageManager.getInstalledPackages(0);

        // 用于存储所有已安装程序的包名

        List pName = new ArrayList();

        // 从pinfo中将包名字取出

        if (pinfo != null) {

            for (int i = 0; i < pinfo.size(); i++) {

                String pf = pinfo.get(i).packageName;

                pName.add(pf);

            }

        }

        // 判断pName中是否有目标程序的包名,有true,没有false

        return pName.contains(packageName);

    }

2.得到版本号

public static StringversionName;

PackageManager manager = getPackageManager();

try {

// 得到版本号

    PackageInfo info = manager.getPackageInfo(this.getPackageName(),0);

versionName = info.versionName;

}catch (NameNotFoundException e) {

e.printStackTrace();

}

3.和后台传过来的版本号进行对比

if (!FragmentAty.versionName.equals(version)) {

//不一样

appUpdate();

}

4.判断是否有包名

private String a="com.yizuwang.app.pho.ui";

private void appUpdate() {

if(isAvilible(this,a)){//判断应用市场是否有包名

launchAppDetail(this,a,"");

}else{//没有,用浏览器打开地址进行下载

 Uri uri = Uri.parse(url);

  Intent intent =new Intent(Intent.ACTION_VIEW, uri);

  startActivity(intent);

    }

Toast.makeText(this,"立即更新",Toast.LENGTH_LONG).show();

}


5.跳转更新

/**

* 启动到应用商店app详情界面

*

* @param appPkg    目标App的包名

* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面

*/

public static void launchAppDetail(Context mContext, String appPkg, String marketPkg) {

try {

if (TextUtils.isEmpty(appPkg)) {

return;

}

Uri uri = Uri.parse("market://details?id=" + appPkg);

Intent intent =new Intent(Intent.ACTION_VIEW, uri);

if (!TextUtils.isEmpty(marketPkg)) {

intent.setPackage(marketPkg);

}

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

mContext.startActivity(intent);

}catch (Exception e) {

e.printStackTrace();

}

}

4.未安装市场应用,那么根据后台返回的地址,用浏览器打开地址进行下载

Uri uri = Uri.parse(url);

  Intent intent =new Intent(Intent.ACTION_VIEW, uri);

  startActivity(intent);

你可能感兴趣的:(Android 跳转应用商店下载APP)