之前笔者项目有个强更的需求,后来发现渠道sdk都有这个功能,就废弃掉了,但好歹自己查了好多资料调试了些时间才出的劳动成功,直接扔了不管有些可惜,所以放上来,有需要的同学可以拿来直接使用。
当打开app时用http和服务器进行一次通信,比较客户端和服务器端的版本号,如果不需要更新则开始游戏(笔者的项目是一个Unity3d的游戏项目),否则服务器返回新apk的下载地址,调用更新逻辑,即调用下面的UpdateNewVersion的downNewApk方法开始下载。
package com.kugou.wushen;
import android.app.DownloadManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
public class UpdateNewVersion {
private Handler handler;
private Context context;
private ProgressDialog mProgress;
private long refernece;
public static final Uri CONTENT_URI = Uri.parse("content://downloads/my_downloads");
public UpdateNewVersion(Context _context,Handler _handler){
this.context = _context;
this.handler = _handler;
}
public void downNewApk(String url){
Do