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);

另一种更新方式为app内部请求服务器地址apk更新
app内部服务器地址更新

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值