位置: 编程技术 - 正文

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

  • 收益性支出和资产的区别
  • 金税盘的会计科目
  • 收入及增值税会计准则
  • 合同执行过程中应该怎么做
  • 金税盘连接不上电脑是怎么回事
  • 一般计税方法适用于500万
  • 公允价值变动损益影响营业利润吗
  • 个体户银行开户是开公户还是私户
  • 独立核算的优点
  • 具备什么条件的土地可以开发
  • 高新技术企业发展现状
  • 固定资产未到期报废进项税额需要转出吗
  • 出口退税进项发票稽核
  • 开公司前期费用有什么
  • 收到技术服务费计入什么科目
  • 公司使用个人车辆费用是多少
  • 需不需要计提增值税发票
  • 企业所得税审计的内容包括哪四个方面
  • 非盈利组织一般纳税人应交的税
  • 小规模纳税人国企
  • 购买理财产品会损失本金吗
  • 外贸企业出口货物会计账务处理
  • 小规模开专票可以享受1%吗
  • 扣缴上月税费会计分录
  • 机械租赁费如何入账科目
  • 非营利组织免税资格可以免些什么税
  • 增值税普通发票有什么用
  • 银行授信额度如何分配
  • 非营利组织企业所得税政策
  • 出售固定资产账务处理
  • 房子按季度收取租金,怎么交房产税
  • 企业缴纳社保包含哪些内容
  • 预付账款可以为负吗
  • 债转股是好还是坏
  • php数组函数,选班长
  • 领用包装物会计科目
  • 直接计入当期利润的利得和损失有哪些
  • Laravel 5.4向IoC容器中添加自定义类的方法示例
  • 购买的固定资产退回账务处理
  • 总公司下的分公司如何做账
  • ntpdate 命令
  • 销售产品消费税计入什么科目
  • 动态设置窗体记录源属性
  • 企业有代扣代缴个税义务
  • 小企业原材料
  • 其他综合收益在资产负债表中如何填列
  • 关闭php报错
  • 怎么计算多个表格的某一数据
  • 分期付款的消费税怎么计算
  • 企业哪些增值税免征
  • 工会经费通过应交税费科目核算吗
  • 农业发展公司有没有库存商品的
  • 运输企业税负率一般控制在多少?
  • 领用包装物用于包装产品的会计分录
  • 公摊水电费计入什么科目
  • 资本成本率是指企业用资费用与有效筹资额之间的比率
  • 收到退回的企业所得税如何做账
  • Linux安装MySQL5.6.24使用文字说明
  • win8删除所有文件
  • 卸载软件后整个盘都清空了
  • win7暗藏的超实用快捷键汇总
  • linux系统怎样安装
  • win7取消还原
  • linux使用范围
  • 文件视图分为哪几种
  • cocos2djs教程
  • unity跨脚本调用函数
  • js获取json数组中的值
  • 音乐播放音乐
  • 详解如何使用pcem安装windows 98 csdn
  • 在dos下运行
  • shell脚本 su
  • 理解JavaScript事件对象
  • javascript文档对象
  • js创建对象的几种方式
  • javascript模块化与非模块化开发区别
  • 税务局约谈严重吗
  • 税务总局2017年11号公告第二条
  • 吉林省耕地占用税实施办法
  • 烟台市独生子女费 打什么电话咨询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设