android 发布最新系统更新包,Android apk 版本更新

编程入门 行业动态 更新时间:2024-10-15 06:17:39

android <a href=https://www.elefans.com/category/jswz/34/1735554.html style=发布最新系统更新包,Android apk 版本更新"/>

android 发布最新系统更新包,Android apk 版本更新

一、修改build.grade文件,版本号和版本名

检测更新可以获取版本名

//获取versionName

private String getVersionName() throws Exception{

PackageManager packageManager = getPackageManager();

PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(), 0);

return packInfo.versionName;

}

二、使用AsyncTask+OkHttp下载

import android.content.Intent;

import android.Uri;

import android.os.AsyncTask;

import android.os.Build;

import android.os.Environment;

import android.support.v4.content.FileProvider;

import android.util.Log;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

public class DownloadTask extends AsyncTask {

private final OkHttpClient mOkHttpClient = new OkHttpClient();

private boolean mSuccess = false;

@Override

protected void onPreExecute() {

super.onPreExecute();

Log.e( "onPreExecute: ","准备前的预操作" );

}

@Override

protected Boolean doInBackground(String... strings) {

try {

String url = strings[0];

Request request = new Request.Builder().url(url).build();

Response response = mOkHttpClient.newCall(request).execute();

if(response!=null && response.isSuccessful()){

mSuccess = true;

dealWithResult(response,url);

}

} catch (IOException e) {

e.printStackTrace();

mSuccess = false;

}

return mSuccess;

}

@Override

protected void onPostExecute(Boolean aBoolean) {

super.onPostExecute(aBoolean);

Log.e( "onPostExecute: ", "doInBackground的结果:"+aBoolean);

}

@Override

protected void onProgressUpdate(Integer... values) {

super.onProgressUpdate(values);

Log.e( "onProgressUpdate: ","调用onProgressUpdate方法:"+values[0] );

}

/**

* 处理下载结果

* @param response 网络返回结果

* @param url 请求网络的地址

*/

private boolean dealWithResult(Response response,String url) {

int len = 0;

byte[] bytes = new byte[1024];

InputStream is = null;

FileOutputStream fos = null;

try {

//创建下载文件存储的位置(路径+文件名)

String savePath=createFolderAndPath();

File file=new File(savePath,getNameFromUrl(url));

fos=new FileOutputStream(file);

is=response.body().byteStream();

long sum=0; //下载文件的进度

long total=response.body().contentLength(); //下载文件的总长度

while((len = is.read(bytes))!=-1){

fos.write(bytes,0,len);

sum+=len;

int progress=(int)(sum*1.0f/total*100);

publishProgress(progress);

}

installApk(file);

return true;

}catch (Exception e){

更多推荐

android 发布最新系统更新包,Android apk 版本更新

本文发布于:2024-02-06 10:08:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748076.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发布最新   版本   更新包   系统   android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!