Android 根据版本号更新

1 读取android 版本号

具体文件位置:

app下 build.gradle文件

versionCode和 versionName

defaultConfig {
        versionCode 1
        versionName "1.0"
    }

读取方法:

PackageInfo pi = getBaseContext().getPackageManager().getPackageInfo(getBaseContext().getPackageName(), 0);
                    String versionName = pi.versionName;
                    int versionCode = pi.versionCode;

2 通过versionName比对版本

我这里是获取下载地址,然后开始下载(比对版本的工作在服务器api处理了。)

//region 版本更新
    //Spinner
    @SuppressLint("HandlerLeak")
    Handler handler1 = new Handler() {
        @Override
        public void handleMessage(Message msg) {
//版本更新操作

        }
    };

    public void VersionUpdate() {

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
//读取版本
                    PackageInfo pi = getBaseContext().getPackageManager().getPackageInfo(getBaseContext().getPackageName(), 0);
                    String versionName = pi.versionName;
                    int versionCode = pi.versionCode;

                    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                    String data = String.format("{'V_AppVersion':'%s'}", versionName);
                    nvps.add(new BasicNameValuePair("data", data));
//调用 api 获取app下载地址
                    String json = HttpWebapi.DoPost(AppConfig.getUrl() + "api/SanjuApp/GetSanjuScanApp_Android", nvps);
                    Message msg = Message.obtain();
                    msg.obj = json;
                    handler1.sendMessage(msg);
                } catch (Exception e) {


                }

            }
        }).start();
    }
    //endregion

点击按钮触发更新:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//更新按钮
        btnUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                VersionUpdate();
            }
        });
    }

posted @ 2018-02-23 17:56  正怒月神  阅读(257)  评论(0编辑  收藏  举报