位置: 编程技术 - 正文

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 协议

  • 个人所得税可以退吗
  • 收到退回的以前年度租金怎么处理
  • 小规模纳税人认定的最新标准2022
  • 税务uk开票人显示是管理员怎么改
  • 国有划拔土地房整体可以买卖吗
  • 季报利润表本月金额和本年累计金额
  • 一般纳税人结转增值税的账务处理
  • 备案办税人员信息填本人的有风险吗
  • 以前年度损益调整
  • 维修费收入怎么结转成本
  • 主营业务收入和销售收入
  • 没有达到起征点的工资忘计申报个税,可以税前扣除吗
  • 小规模销售收入要做销项税额吗
  • 员工离职补偿需要计提吗
  • 无偿赠送商品要纳企业所得税吗
  • 新会计准则下接会计科目
  • 调整增值税误差的原因
  • 经营性租出固定资产的租金收入计入
  • 企业拿到产权证后是否还需要缴纳土地使用税呢?
  • 无票收入如何做账
  • 过节政府有补助钱吗
  • 机动车类专用发票
  • 法人一证通年费缴费
  • 增值税发票开具错误重开该怎么做会计分录?
  • 劳务公司代发劳务费合法吗
  • 房地产行业需要做环评吗
  • 贸易公司买进卖出
  • 销售折让怎么做分录
  • windows 7无线开关在哪里
  • 销售补差是怎么算的
  • php gethostname
  • 债券转换为普通债权
  • A meerkat in Namibia (© Danita Delimont/Offset by Shutterstock)
  • 一公顷等于多少千米
  • 银行罚息计入什么会计科目
  • 防止盗链的php代码
  • php异常处理和错误处理
  • 销售折扣属于什么项目
  • 关于企业财务会计的说法正确的是
  • php获取浏览器ua
  • python自动控制
  • 什么是财务报表分析,方法有哪些
  • 帝国cms专题
  • mysql行锁的作用
  • 合同负债算负债吗
  • 预收账款期末余额在借方还是贷方
  • 月末研发支出会结转至哪个账户
  • 企业租赁收入如何纳税
  • 员工福利费属于什么会计科目
  • 电子承兑汇票兑现扣几个点
  • 应付职工薪酬的账务处理
  • 营业利润是负数什么原因
  • 什么是公允价值变动收益
  • 银行电子承兑到期后怎么操作
  • 售后租回承租人怎么处理
  • 固定资产出售增值税减按2%征收,附表一,填写
  • 先付款后开票如何入账
  • 高速etc里面的钱怎么取?
  • 生产型企业加计扣除10%
  • 累计折旧怎么算出来
  • 如何设置固定资产的部门对应这就
  • sqlserver全文检索
  • android系统应用可以禁用吗
  • win7 重装系统
  • win7系统无wifi连接
  • 学习名言警句 励志
  • dos批处理命令大全
  • js布局与css布局
  • nodejs child_process
  • python的垃圾处理机制
  • 河南省发票查询真伪查询系统
  • 跨区域提供建筑安装服务
  • 出口退税是否缴纳所得税
  • 办理授权税务事项有哪些
  • 车辆购置税需要每年都交吗
  • 税务局是什么单位类型
  • 泉州企业医保哪里缴费
  • 企业所得税率2023年
  • 宝鸡新车交易市场
  • 财政部国家税务总局2021年40号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设