import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
public class Update extends BaseActivity {
public ProgressDialog pBar;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.update);
Dialog dialog = new AlertDialog.Builder(Update.this).setTitle("系统更新")
.setMessage("发现新版本,请更新!")// 设置内容
.setPositiveButton("确定",// 设置确定按钮
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
pBar = new ProgressDialog(Update.this);
pBar.setTitle("正在下载");
pBar.setMessage("请稍候...");
pBar
.setProgressStyle(ProgressDialog.STYLE_SPINNER);
downFile("http://url:8765/OA.apk");
}
}).setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// 点击"取消"按钮之后退出程序
}
}).create();// 创建
// 显示对话框
dialog.show();
}
void downFile(final String url) {
pBar.show();
new Thread() {
public void run() {
HttpClient client = new DefaultHttpClient();
// params[0]代表连接的url
HttpGet get = new HttpGet(url);
HttpResponse response;
try {
response = client.execute(get);
HttpEntity entity = response.getEntity();
long length = entity.getContentLength();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {
File file = new File(Environment
.getExternalStorageDirectory(), "OA.apk");
fileOutputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int ch = -1;
int count = 0;
while ((ch = is.read(buf)) != -1) {
// baos.write(buf, 0, ch);
fileOutputStream.write(buf, 0, ch);
count += ch;
if (length > 0) {
}
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
}
down();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
void down() {
handler.post(new Runnable() {
public void run() {
pBar.cancel();
update();
}
});
}
void update() {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/sdcard/OA.apk")),
"application/vnd.android.package-archive");
startActivity(intent);
}
}
分享到:
相关推荐
本文将详细探讨如何在Android应用程序中实现自动检查并下载新版本的代码逻辑,以达到无缝更新的效果。 首先,我们需要一个服务(Service)来执行后台的更新检查。这个服务会在合适的时机(例如应用启动时或网络连接...
### Android自动更新机制详解 #### 一、引言 随着移动互联网的发展,应用程序的更新变得越来越频繁。为了提升用户体验并确保应用始终处于最新状态,自动更新功能成为了许多开发者追求的目标。本文将详细介绍如何在...
本篇文章将深入探讨如何构建一个Android自动更新程序,包括其背后的原理、实现步骤以及可能遇到的问题。 首先,我们要理解自动更新的核心原理。Android应用的自动更新通常基于Google Play Store或自建的应用市场。...
安卓自动更新,静默更新,可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新 之前用的友盟更新,但是友盟最近自动跟新业务要停止服务了,所以就自己写了这套自动更新的代码 使用起来特别简单,几行...
- `Android 应用软件自动更新源码`包含了实际的Java或Kotlin源代码,用于实现自动更新功能。 9. **测试与调试**: - 在模拟器或真实设备上测试自动更新流程,确保在不同网络环境下都能正常工作。 - 调试时注意...
标签"app自动更新"、"android更新"、"自动更新"、"一行代码"进一步强调了这个开源库的特性,即专注于Android应用的自动更新,并且着重于简单易用。"一行代码"是其核心卖点,意味着开发者可以在短时间内完成自动更新...
"Android 自动 更新 程序"是一个专为Android应用设计的自动更新解决方案,它允许应用在内网或外网环境下无缝地进行版本更新。这个程序可能包含了一个完整的更新框架,包括必要的代码库和配置文件,使得开发者能够...
"Android-Android一行代码让你实现APP自动更新功能"这个主题正是关注如何简化这一过程。在本文中,我们将深入探讨如何利用Android的现有库和API来实现高效且用户友好的自动更新机制。 1. **理解自动更新需求** ...
在Android开发中,提高效率的一个重要技巧是利用自动化工具来减少重复的工作,比如自动生成代码。这个主题主要涉及两个方面:一是从布局文件生成对应的Java代码声明,二是自动生成控件的赋值代码。这两部分将帮助...
首先,我们需要理解Android自动更新的基本流程,它通常包括检查更新、下载更新包、安装更新等步骤。 1. **检查更新**:`UpdateProvider.java` 文件很可能包含了更新服务的提供者,它会负责与服务器进行交互,获取...
在Android应用开发中,自动更新功能是提升用户体验和确保应用安全的重要组成部分。它允许开发者发布新版本的应用,而用户无需手动查找和下载更新,系统会在后台自动完成这一过程。本篇文章将详细介绍如何在Android...
这份"Android代码-应用程序自动更新源码.zip"包含了一个实现自动更新流程的示例代码,这对于Android开发者来说是极具价值的学习资源。 首先,自动更新通常分为两个主要步骤:检测新版本和下载及安装更新。检测新...
在Android系统中,实现“自动更新时间”这一功能通常涉及到对系统广播的监听以及时间管理。这个过程可以分为几个关键步骤,我会详细解释这些步骤,以便你理解和实施类似的功能。 首先,我们需要创建一个...
在开发 Delphi Android 应用程序时,自动更新功能是一个重要的组成部分,它允许用户方便快捷地获取应用的最新版本,而无需手动下载安装。本文将详细介绍如何使用 RAD Studio 10.3.3 实现这一功能,并在 Android 10 ...
在Android应用开发中,自动...通过以上步骤,开发者可以构建一个完整的Android自动更新功能,提供给用户无缝的升级体验,同时保证应用的持续优化和安全性。在实际开发中,还需根据具体项目需求进行相应的调整和优化。
在本文中,我们将深入探讨如何使用Delphi XE在Android平台上实现APP的自动在线更新与升级功能。Delphi XE是一款强大的集成开发环境(IDE),它支持跨平台应用程序开发,包括针对Android系统的应用。实现自动在线更新...
android-auto-update 一个操作简单、支持断点续传、安全性能较高的安卓应用更新库 特点 步骤简单,几行代码就搞定 用户实现是否更新接口,有助于用户自定义 断点续传,断网后,当启动网络后继续下载 安全,代码操作...
在Android应用程序开发中,设计一个自动更新功能是至关重要的,因为用户可能不会手动检查或安装新的更新。本文将深入探讨如何实现这一功能,主要涉及的知识点包括SharedPreferences、System.currentTimeMillis、网络...
- `android手机应用程序自动更新源码.rar`包含了一个完整的自动更新功能的源代码示例,开发者可以参考这个例子来实现在自己的应用中添加类似功能。 6. **个人设计思想**: - `个人设计思想.txt`可能记录了开发者...
在Android开发中,实现应用程序的自动更新功能是提高用户体验和保证软件安全的重要一环。"ANDROID程序自动更新.rar"这个压缩包提供了一个简单的示例,用于演示如何在Android应用中集成自动更新机制。下面我们将详细...