位置: 编程技术 - 正文

android apk版本更新(android 更新apk)

编辑:rootadmin

推荐整理分享android apk版本更新(android 更新apk),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android版本更新下载安装,android 更新apk,安卓apk修改版本号,android版本更新下载安装,android 更新apk,android版本更新下载安装,android app版本更新,android app版本更新,内容如对您有帮助,希望把文章链接给更多的朋友!

android apk版本更新

/** * 获取版本名称 * * @return version */ private String getVersionName() { try { // 获取packagemanager的实例 PackageManager packageManager = getPackageManager(); // getPackageName()是你当前类的包名,0代表是获取版本信息 PackageInfo packInfo = packageManager.getPackageInfo( getPackageName(), 0); version = packInfo.versionName;// versionName是获取版本名称还有版本号等等... } catch (NameNotFoundException e) { e.printStackTrace(); } return version; }

activity类调用

android apk版本更新(android 更新apk)

// 这里来检测版本是否需要更新 UpdateManager mUpdateManager = new UpdateManager( SettingActivity.this); mUpdateManager.checkUpdateInfo();

public class UpdateManager { private Context mContext; /* 下载包安装路径 */ private static final String savePath = "//sdcard//updatedemo//"; private static final String saveFileName = savePath &#; "licaike.apk"; /* 进度条与通知ui刷新的handler和msg常量 */ private int progress; private ProgressDialogUtil pdu; private boolean interceptFlag = true; @SuppressLint("HandlerLeak") private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 0x: pdu.setProgress(progress); break; case 0x: // 安装apk File apkfile = new File(saveFileName); if (!apkfile.exists()) { return; } Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(Uri.parse(" &#; apkfile.toString()), "application/vnd.android.package-archive"); mContext.startActivity(i); pdu.dismiss(); break; default: break; } }; }; public UpdateManager(Context context) { this.mContext = context; } // 外部接口让主Activity调用 public void checkUpdateInfo() { final AlertDialogUtil dialogUtil = new AlertDialogUtil(mContext, false, null); dialogUtil.setMessage("请更新新版本"); dialogUtil.setBtnPositiveValue("更新"); dialogUtil.setPositiveClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { showDownloadDialog(); dialogUtil.dismiss(); } }); dialogUtil.setBtnNegativeValue("取消"); dialogUtil.setNegativeClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { dialogUtil.dismiss(); } }); dialogUtil.show(); } private void showDownloadDialog() { // 下载apk downLoadThread(); pdu = new ProgressDialogUtil(mContext, false, null); pdu.setMessage("软件正在更新中..."); pdu.setBtnNegativeValue("取消"); pdu.setNegativeClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { interceptFlag = false; pdu.dismiss(); } }); pdu.show(); } private void downLoadThread() { new Thread(new Runnable() { @Override public void run() { InputStream is = null; FileOutputStream fos = null; try { // 返回的安装包url String apkUrl = " URL url = new URL(apkUrl); HttpURLConnection conn = (HttpURLConnection) url .openConnection(); conn.connect(); int length = conn.getContentLength(); is = conn.getInputStream(); File file = new File(savePath); if (!file.exists()) { file.mkdir(); } String apkFile = saveFileName; File ApkFile = new File(apkFile); fos = new FileOutputStream(ApkFile); int count = 0; byte buf[] = new byte[]; while (interceptFlag) {// 点击取消就停止下载. int numread = is.read(buf); count &#;= numread; progress = (int) (((float) count / length) * ); // 更新进度 mHandler.sendEmptyMessage(0x); if (numread <= 0) { // 下载完成通知安装 mHandler.sendEmptyMessage(0x); break; } fos.write(buf, 0, numread); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (fos != null) fos.close(); if (is != null) is.close(); } catch (Exception e) { } finally { fos = null; is = null; } } } }).start(); }}

AlertDialog 工具类我的博客里写过了,你可以看看自己动手写,也可以粘贴过来用

Http TCP 协议 Http协议•基于TCP无状态的应用层协议•请求组成:请求行、消息报头、消息报文•响应组成:状态行、消息报头、响应正文常见请求、响应消息报头Cont

Android RelativeLayout 大属性 AndroidRelativeLayout大属性android:layout_above="@id/xxx"--将控件置于给定ID控件之上android:layout_below="@id/xxx"--将控件置于给定ID控件之下android:layout_toLeftOf="@id/xxx"-

Host &#;admin-PC&#; is not allowed to connect to this MySQL server 问题:Host'admin-PC'isnotallowedtoconnecttothisMySQLserver(其中,admin-PC为我的机器名)原因:安装MySQL时没有勾选Enablerootaccessfromremotemachines解决办法:执行命令[s

标签: android 更新apk

本文链接地址:https://www.jiuchutong.com/biancheng/378114.html 转载请保留说明!

上一篇:android布局优化(androidui布局)

下一篇:Http TCP 协议

  • 当期免抵税额如何做账
  • 股票印花税怎么交
  • 运输行业一般纳税人税率
  • 房地产企业拆迁补偿费契税12366
  • 劳务派遣人员的工资计入什么科目
  • 食用油交不交消费税
  • 库存商品月末必须结转吗
  • 本月增加的固定资产计提折旧吗
  • 预授权撤销怎么撤销
  • 个税专项附加扣除
  • 长期负债率分析
  • 设备租赁公司是干嘛的
  • 直接减免的增值税属于财政性资金吗
  • 银行开户时存入的现金怎么做账
  • 人力资源服务费税收编码
  • 利润为负会计分录
  • 医院食堂承包方案的实施细则
  • 增值税小规模纳税人减免增值税
  • 怎么查找使用手机的时间
  • 资产管理人该如何称呼
  • 财税2018年39号公告残保金
  • 进出口商品应该符合哪个国家的标准
  • 小型微利企业的条件
  • 投资收益科目应用
  • 金蝶如何结转折旧费用的操作步骤
  • 一般纳税人增值税申报操作流程
  • 公司个人所得税怎么申报
  • 应收单据处理包括哪些
  • 收到财政扶贫补贴会计分录
  • 权利,许可证照印花税
  • 智能化的发展现状与趋势
  • 财务报表未分配利润为负数
  • 进口免费赠送报成了一般贸易
  • php自学
  • php字符串型数据的定义方式
  • 7zip怎么压缩文件为rar
  • 如何进入企业年报系统
  • 公司出租房租怎么交税
  • 企业的做账流程有哪些
  • 回迁房办产权证的时候需要交多少钱
  • 蒂内河畔圣艾蒂安小镇,法国阿尔卑斯省 (© CAVALIER Michel/hemis.fr/Alamy Stock Photo)
  • php redis使用
  • vue思维导图怎么下载
  • 外购商品用于赠送增值税可以抵扣么
  • 企业销售旧固定产品
  • 采购商品的运费计入成本吗
  • pyqt5 pycharm
  • 装货费用
  • 发票认证系统叫什么名字
  • sql2008r2怎么用
  • 去年一个月工资未计提直接计入成本,现在如何调整
  • 电子商业汇票背书人记载不得转让
  • 油费预付卡如何办理
  • 红冲以前年度费用
  • 结转后还可以改凭证吗
  • 保证金抵扣货款情况说明范文
  • 月初没有发票
  • 租赁费属于酌量性固定成本
  • 金蝶多核算项目怎么查一个项目下的其他项目
  • 一般纳税人销售使用过的固定资产
  • sql server 执行语句
  • mysql基本教程
  • 重装系统注册表会重置吗
  • Win10预览版更新弹窗如何关闭
  • xp ie浏览器无法显示网页
  • 电脑bios启动项设置中文
  • ubuntu with linux
  • windows7安装过程中出错
  • win7音频服务未响应
  • 如何关闭office开机自启动
  • onekey.exe是什么
  • Unity3D游戏开发培训课程大纲
  • unity2020怎么导入资源
  • js复制对象的值
  • jquery .html的用法
  • android datagridview
  • javascript面向对象吗
  • fragment
  • 广东电子税务局手机版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设