Android上架app版本检测更新app

1:请求接口返回如果有新版本则


/**
 * date:2020/9/22 0022
 * author:wsm (Administrator)
 * funcation:有市场打开。没有打开浏览器
 */
public class AppUpdateUtils {
    
    

    public static void dialogUpdateVersion(Context context) {
    
    
        int index = 0;
        //获取应用市场的代码
        ArrayList<String> installedMarketPkgs = getInstalledMarketPkgs(context);
        for (int j = 0; j < installedMarketPkgs.size(); j++) {
    
    
            if (installedMarketPkgs.get(j).equals("com.tencent.android.qqdownloader") || installedMarketPkgs.get(j).equals("com.oppo.market") ||
                    installedMarketPkgs.get(j).equals("com.xiaomi.market") || installedMarketPkgs.get(j).equals("com.bbk.appstore")) {
    
    
                Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("market://details?id=这里是你的app应用的包名"));
                context.startActivity(intent);
                index = 1;
                break;
            }
        }
        if (index != 1) {
    
    
            Intent intent = new Intent();
            intent.setAction("android.intent.action.VIEW");
//            Uri download_url = Uri.parse(url);
            Uri download_url = Uri.parse("http://a.app.qq.com/o/simple.jsp?pkgname=这里是你的app应用的包名");
            intent.setData(download_url);
            context.startActivity(intent);
        }

    }

    /**
     * 获取当前手机上的应用商店数量
     *
     * @param context
     * @return
     */
    public static ArrayList<String> getInstalledMarketPkgs(Context context) {
    
    
        ArrayList<String> pkgs = new ArrayList<>();
        if (context == null)
            return pkgs;
        Intent intent = new Intent();
        intent.setAction("android.intent.action.VIEW");
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setData(Uri.parse("market://details?id="));
        PackageManager pm = context.getPackageManager();
        // 通过queryIntentActivities获取ResolveInfo对象
        List<ResolveInfo> infos = pm.queryIntentActivities(intent,
                0);
        if (infos == null || infos.size() == 0)
            return pkgs;
        int size = infos.size();
        for (int i = 0; i < size; i++) {
    
    
            String pkgName = "";
            try {
    
    
                ActivityInfo activityInfo = infos.get(i).activityInfo;
                pkgName = activityInfo.packageName;
            } catch (Exception e) {
    
    
                e.printStackTrace();
            }
            if (!TextUtils.isEmpty(pkgName))
                pkgs.add(pkgName);
        }
        return pkgs;
    }

}

2:判断是否有新版本,更新则调用跳转应用市场更新

 //立即更新
 AppUpdateUtils.dialogUpdateVersion(MainActivity.this);

猜你喜欢

转载自blog.csdn.net/weixin_43117800/article/details/109134383