美文网首页
Android 跳转应用商店下载APP

Android 跳转应用商店下载APP

作者: __MX | 来源:发表于2019-09-27 14:02 被阅读0次

    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<PackageInfo> pinfo = packageManager.getInstalledPackages(0);

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

            List<String> pName = new ArrayList<String>();

            // 从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

          本文链接:https://www.haomeiwen.com/subject/rdtauctx.html