android应用自动安装程序,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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值