栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Andriod app强制更新

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Andriod app强制更新

Andriod app强制更新
  • 根据服务器判断是否需要升级
    • 使用

根据服务器判断是否需要升级 使用
  1. build.gradel(:project)

    // 使用okhttp
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    
  2. 使用 (MainActivity.java

    // 使用的包
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import okhttp3.FormBody;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    // 定义版本号
    private static String baseVersion = "V1.1";
    
    
    // 获取服务端的版本号是否和本地版本号一致
    private void sendByOKHttp() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                OkHttpClient okhttpclient = new OkHttpClient();
                Request request = new Request.Builder()
                        .url("https:/version/")
                        .get()
                        .build();
                Log.d("URL",request+"");
                try{
                    Response response = okhttpclient.newCall(request).execute();
                    String responseData = response.body().string();
                    Log.d("输出结果:",responseData);
                    // 转换字典 这里使用ali fastjson
                    // 使用
                    //1. compile 'com.alibaba:fastjson:1.2.54'
                    // import com.alibaba.fastjson.JSON;
    				// import com.alibaba.fastjson.JSONObject;
                    JSONObject jsonObject = JSONObject.parseObject(responseData);
                    String version = jsonObject.getString("version");
    
                    if (baseVersion.equals(version)){
                        Log.d("输出结果","版本相同");
                    }
                    else{
                        updateApp();
                    }
                }catch (Exception e){
                    Log.d("输出结果:","get错误");
                }
            }
        }).start();
    }
    // 打开 UpdateActivity.java
    public void updateApp(){
        Intent intent = new Intent(MainActivity.this,UpdateActivity.class);
        startActivity(intent);
    }
    
  3. 导入sdk

    // 工程build.gradle目录添加
    allprojects {
    	repositories {
    		...
    		maven { url 'https://www.jitpack.io' }
    	}
    }
    
    //项目build.gradle文件添加
    dependencies {
           implementation 'com.github.NewHuLe:AppUpdate:v1.7'
    }
    
  4. UpdateActivity.java

    package com.tf.main;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.util.Log;
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    import com.alibaba.fastjson.JSONObject;
    import com.open.hule.library.entity.AppUpdate;
    import com.open.hule.library.utils.UpdateManager;
    
    
    public class UpdateActivity extends AppCompatActivity {
        private static String url = "";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getUrl();
    
        }
    
        // 获取服务端的url
        private void getUrl() {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    OkHttpClient okhttpclient = new OkHttpClient();
                    Request request = new Request.Builder()
                            .url("https:/version/")
                            .get()
                            .build();
                    try{
                        Response response = okhttpclient.newCall(request).execute();
                        String responseData = response.body().string();
                        // 转换字典
                        JSONObject jsonObject = JSONObject.parseObject(responseData);
                        url = jsonObject.getString("download_url");
                        checkUpdate();
    
                    }catch (Exception e){
                        Log.d("输出结果:","get错误");
                    }
    
    
                }
            }).start();
        }
    
    
        private void checkUpdate() {
            // 更新的数据参数
            Log.d("下载url:",url);
            AppUpdate appUpdate = new AppUpdate.Builder()
                    //更新地址(必传)
                    .newVersionUrl(url)
                    // 通过传入资源id来自定义更新对话框,注意取消更新的id要定义为btnUpdateLater,立即更新的id要定义为btnUpdateNow(非必填)
                    .updateResourceId(R.layout.dialog_update)
                    // 更新的标题,弹框的标题(非必填,默认为应用更新)
                    .updateTitle(R.string.update_title)
                    // 更新内容的提示语,内容的标题(非必填,默认为更新内容)
                    .updateContentTitle(R.string.update_content_lb)
                    // 保存文件路径(默认前缀:Android/data/包名/files/ 文件名:download)
                    .savePath("/A/B")
                    //是否采取静默下载模式(非必填,只显示更新提示,后台下载完自动弹出安装界面),否则,显示下载进度,显示下载失败
                    .isSilentMode(false)
                    //是否强制更新(非必填,默认不采取强制更新,否则,不更新无法使用)
                    .forceUpdate(1)
                    //文件的MD5值,默认不传,如果不传,不会去验证md5(非静默下载模式生效,若有值,且验证不一致,会启动浏览器去下载)
                    .md5("")
                    .build();
            new UpdateManager().startUpdate(UpdateActivity.this, appUpdate);
    
        }
    
    }
    
    
  5. 服务器返回

    # 获取版本号 客户端根据版本号来判断是否强制更新
    class Version(baseView):
        def get(self,request):
            result = {
                'appnmae':'',          # app名称  
                'version': settings.EDITION,  # 版本号
                'download_url' : '',           # 更新地址
                'description' : '',            # 版本描述 
                'must':True,                  # 是否强制升级
                'extra':[]                    # 额外信息
            }
    
            return Response(result)
    
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号