0 0

android应用客户端自动升级10

   本人算是android新手,本贴是讨论贴,我本人并没有很好的客户端自动升级方案,这贴要是移到问答就没戏了,管理员请手下留情。

    android2.2开始,支持客户端自动升级,那么在2.2以前呢,你们是怎么做的?

    以一个外行的能想到的,就是在应用中增加下载最新版本的功能,指定程序到固定网址下载最新程序,执行其中包含的数据库升级脚本(如果有),至于程序如何安装,希望看到贴的高手痛快的写出你的经验。

    android2.2支持的自动升级应该也不是什么都不用做(开发的时候),最起码自动升级时如何找到对应用程序的网址,如果提供版本比较信息这些内容,可能还是有的...
问题补充
GOOD!这几天问了一个牛人,他也是这样做的,但没代码给我,只说了思路,现在连代码都有了,呵呵...
2010年12月14日 10:07

6个答案 按时间排序 按投票排序

0 0

而且代码里没有检测程序是否有更新的功能

2010年12月28日 10:18
0 0

同问:应用程序未安装 问题

2010年12月14日 10:07
0 0

请问楼主你实现了android应用客户端自动更新吗,我用上面的代码,怎么在文件下载后不能安装成功了

2010年12月14日 10:07
0 0

以前用PPC是类似的实现 不过比较困难 这个好看起来现在还是Android更方便些

2010年12月14日 10:07
0 0

我也做oa,实现方法和你大同小异。

2010年12月14日 10:07
0 0

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);
	}

}
 

2010年12月14日 10:07

相关推荐

    android 应用客户端自动升级

    android 应用客户端自动升级 应用客户端自动升级

    android+应用客户端自动升级

    android+应用客户端自动升级 android+应用客户端自动升级 android+应用客户端自动升级

    Android 客户端自动升级代码及“应用程序未安装”的解决办法

    Android 客户端自动升级代码及“应用程序未安装”的解决办法 调试的时候能正常下载新版程序,但是在打开安装时一直提示“应用程序未安装”,纠结了半天终于发现是程序的签名问题。 手机安装的apk签名要与新下载的...

    Android应用的自动升级、更新模块的实现 .

    NULL 博文链接:https://daixj110.iteye.com/blog/1133158

    简单的android应用升级、更新源代码

    很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新。得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单。用了最简单的技术。包括客户端和服务器端。服务器端的返回可以根据...

    一种Android机顶盒USB自动升级实现.pdf

    一种Android机顶盒USB自动升级实现.pdf

    基于Android的外业核查系统设计与应用.pdf

    基于Android的外业核查系统设计与应用 本文设计了一种基于Android操作系统的外业核查系统,旨在提高外业核查工作的自动化程度和工作效率。该系统通过移动设备的二...标签:Android 客户端 应用开发 参考文献 专业指导

    Unity3D android 拉起android软键盘

    最近公司项目有一个手机VR展厅业务,用U3D做VR场景还可以做到,后面要加个2D的线下预定页面,就涉及到3D 2D界面转换,首先考虑u3d作为插件,不考虑升级客户端,更新U3D资源来升级,所以PASS掉原生activity跳转方案,...

    新版Android开发教程.rar

    Android Android Android Android 应用现状 � 设备商: lenovo 、琦基、戴尔、三星、摩托罗拉、华为、英特尔、 Kogan 、索爱、华硕、多普达、爱可 视 、 Archos 等。 � 制造商: HTC 、 Telstra 等。 � 手机设计...

    Android最新资料以及源码

    22、Android应用程序的自动更新升级(自身升级、通过tomcat) 共4个目标文件!~如题。 23、Android游戏疯狂连连看源代码 共15个目标文件!~代码注释比较丰富,而且资源文件完整,还有文档,看上去一切都很规范,...

    先锋Android Market CMS内容管理系统 X1.0.zip

    7、APK包信息自动获取:每一个应用包里面都包含了包名、版本号、版本Code、系统SDK版本等信息,这些信息关系到版本升级,用户的手机是否适合使用,所以是至关重要的,也是Android Market必备的一项功能。 8、专题...

    android源码包集合4

    基于股票的一个Android应用(内含源码) .rar 多点缩放字体DEMO .rar 多种控件多种实现方式Demo.rar 多级PopupWindow的小demo.zip 带手势划动功能的日历源码.rar 抖动窗口.rar 换肤.zip 斗地主源码实现.zip 毕业设计...

    中国电信掌上营业厅客户端 v4.3.0.zip

    本客户端适用于Android2.1以上、IOS、Brew、BlackBerry OS手机操作系统用户,随着客户端不断优化升级,将会为更多用户提供更多优质服务功能! 三、产品优势 ● 界面简洁生动 采用系统友好的用户界面,操作简单、...

    Android 3D游戏开发技术宝典-OpenGL ES 2.0 (吴亚峰) 源代码

    1.4 hello android应用程序的开发 11 1.4.1 第一个android应用程序 12 1.4.2 android应用程序的项目结构 14 1.4.3 android应用程序的调试 16 1.4.4 实际设备的联机调试 18 1.5 android应用程序运行...

    手机乐园客户端2095最新版本

    手机乐园是为方便广大Android机友而开发一款手机软件、游戏下载类软件,通过它可以下载手机乐园网站上全部应用和游戏。 软件特色功能介绍: 1)真正完全退出,退出后不驻留内存; 2)支持省流量更新,图片智能显示、...

    安卓(Android)应用版本更新方法

    开发中对版本进行检查并更新的需求基本是所有应用必须有的功能,可是在实际开发中有些朋友就容易忽略一些细节。 版本更新的基本流程: 一般是将本地版本告诉服务器,服务器经过相关处理会返回客户端相关信息,告诉...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...

    AppCan-BBS for Discuz! X2.0&2.5 v2.2

    AppCan-BBS 2.1版本的用户请注意:1)2.1版本使用问题:因插件注册机制的修改,2.1版本不能自动升级,如需重新生成手机应用,只能升级至2.2版本(请放心:手机应用旧版本的用户使用不受影响)。2)升级步骤:在升级至2.2...

    AppCan-BBS v2.2 for Discuz!X2 和 Discuz!X2.5.rar

    因插件注册机制的修改,2.1版本不能自动升级,如需重新生成手机应用,只能升级至2.2版本(请放心:手机应用旧版本的用户使用不受影响)。 2)升级步骤: 在升级至2.2时必须按以下步骤操作:卸载插件>删除服务器插件包...

Global site tag (gtag.js) - Google Analytics