l联网权限
private String url ="http://125.39.134.47/r/a.gdown.baidu.com/data/wisegame/b3fa33ccd93f3d50/jinritoutiao_634.apk";
private ProgressDialog progressDialog;//加载框private Callback.Cancelable cancelable;//请求任务对象
public class Config {
public static final String VERSION_PATH = Environment.getExternalStorageDirectory()+"/kson/versions.apk";
}
public class Version {
private int VersionCode = 200;//版本号
private String url;//远程apk地址
@Override
public String toString() {
return "Version{" +
"VersionCode=" + VersionCode +
", url='" + url + '\'' +
'}';
}
public int getVersionCode() {
return VersionCode;
}
public void setVersionCode(int versionCode) {
VersionCode = versionCode;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Version() {
}
public Version(int versionCode, String url) {
VersionCode = versionCode;
this.url = url;
}
}
te_geng.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
//包
PackageManager manager = getActivity().getPackageManager();
PackageInfo info = manager.getPackageInfo(getActivity().getPackageName(), 0);
int code = info.versionCode;
Version version = new Version();
version.setUrl(url );
if(code<version.getVersionCode())
{
downloadApk();
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
});
private void initDialog() {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "暂停", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//取消下载任务
cancelable.cancel();
}
});
}
private void downloadApk() {
RequestParams params = new RequestParams(url);
params.setAutoRename(true);
params.setCancelFast(true);
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
params.setSaveFilePath(com.bwie.bean.Config.VERSION_PATH);
}
cancelable = x.http().get(params, new Callback.ProgressCallback<File>() {
@Override
public void onSuccess(File result) {
progressDialog.dismiss();
install(result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
progressDialog.show();
}
@Override
public void onLoading(long total, long current, boolean isDownloading) {
//下载进度条
if (isDownloading) {
progressDialog.setMax((int) total);
progressDialog.setProgress((int) current);
progressDialog.setTitle("下载进度");
System.out.println("current:" + (int) current * 100 / total);
}
}
});
}
private void install(File file) {
//下载完成后自动安装
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse("file://" + file.getAbsolutePath()), "application/vnd.android.package-archive");
startActivity(intent);
}