android实现程序自动升级到安装示例分享(下载android程序安装包)

 更新时间:2014年01月19日 15:26:06   作者:  
这篇文章主要介绍了android实现下载android程序安装包自动升级的示例,大家参考使用吧

复制代码 代码如下:

//程序下载升级 zhouxiang
@JavascriptInterface
public void UpdateCAECP(final String path){
try{
AlertDialog.Builder builder = new Builder((Context)obj);
builder.setMessage(“检测到有新版本发布,是否进行下载升级?”);
builder.setTitle("程序更新提示");
builder.setPositiveButton("升级", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
m_pDialog = new ProgressDialog((Context)obj);
m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
m_pDialog.setTitle("程序升级中");
m_pDialog.setMessage("正在下载最新版的CAECP,请等候…");
m_pDialog.setIcon(R.drawable.ic_launcher);
m_pDialog.setProgress(100);
m_pDialog.setIndeterminate(false);
//设置ProgressDialog 是否可以按退回按键取消
m_pDialog.setCancelable(true);
m_pDialog.show();
new CAECP_DownloadFile(m_pDialog,(Context)obj).execute(path);
}
});
builder.setNegativeButton("取消", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
builder.create().show();
}catch(Exception e){
Alert("升级提示", e.getMessage(), "确认");
}
}

复制代码 代码如下:

//zhouxiang 文件下载百分比 及 自动安装
public class CAECP_DownloadFile extends AsyncTask{
ProgressDialog m_pDialog=null;
String path="/sdcard/caecp/caecp.apk";
static String chattemp = "/sdcard/caecp/chat.caecp";
static String usertemp = "/sdcard/caecp/user.caecp";
Context obj;
CAECP_DownloadFile(ProgressDialog m_pDialog2,Context obj2){
m_pDialog=m_pDialog2;
obj=obj2;
}
@Override
protected String doInBackground(String… sUrl) {
try {
URL url = new URL(sUrl[0]);
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(path);
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
m_pDialog.setProgress((int) (total * 100 / fileLength));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
DownCAECP_Ok();
} catch (Exception e) {
}
return null;
}
//下载CAECP文件完成,启动新线程,调用系统进行安装
public void DownCAECP_Ok(){
new Thread(){
public void run() {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setDataAndType(Uri.parse("file://" + path),"application/vnd.android.package-archive");
obj.startActivity(i);
}
}.start();
}

相关文章

  • Android ListView实现下拉顶部图片变大效果

    Android ListView实现下拉顶部图片变大效果

    这篇文章主要为大家详细介绍了Android ListView实现下拉顶部图片变大,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详解Android创建Handler的必备知识点

    详解Android创建Handler的必备知识点

    本篇文章主要介绍Handler中需要了解的几个必备知识点,比如Handler创建、异步Handler是个啥及如何创建,感兴趣的小伙伴快跟随小编一起学习一下
    2022-10-10
  • Kotlin基础学习之位运算

    Kotlin基础学习之位运算

    一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,下面这篇文章主要给大家介绍了关于Kotlin基础学习之位运算的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-11-11
  • Flutter Http分块下载与断点续传的实现

    Flutter Http分块下载与断点续传的实现

    这篇文章主要介绍了Flutter Http分块下载与断点续传的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Android获取apk签名指纹的md5值(防止重新被打包)的实现方法

    Android获取apk签名指纹的md5值(防止重新被打包)的实现方法

    这篇文章主要介绍了Android获取apk签名指纹的md5值以防止重新被打包的实现方法,结合实例形式详细分析了Android获取apk md5值的常用技巧,需要的朋友可以参考下
    2016-07-07
  • Android SwipeRefreshLayout超详细讲解

    Android SwipeRefreshLayout超详细讲解

    在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout
    2022-11-11
  • 新版Android Studio3.6找不到R.java怎么处理

    新版Android Studio3.6找不到R.java怎么处理

    这篇文章主要介绍了新版Android Studio3.6找不到R.java怎么处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Android中APK签名工具之jarsigner和apksigner详解

    Android中APK签名工具之jarsigner和apksigner详解

    这篇文章主要给大家介绍了关于Android中APK签名工具之jarsigner和apksigner的相关资料,文中介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Android自定义ViewPager实例

    Android自定义ViewPager实例

    这篇文章主要介绍了Android自定义ViewPager的方法,结合完整实例形式分析了Android基于ViewGroup类自定义ViewPager的具体实现技巧,需要的朋友可以参考下
    2016-02-02
  • Android BLE设置MTU大小实现详解

    Android BLE设置MTU大小实现详解

    这篇文章主要为大家介绍了Android BLE设置MTU大小实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论