位置: 编程技术 - 正文

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

  • 工会经费税前扣除比例是多少
  • 企业用于职工的个人住房是否可以不缴纳房产税?
  • 开专用发票可以直接写加工费这个明细吗
  • 开发成本公式
  • 个体工商户生产经营所得怎么申报
  • 货币资金核算的调查报告
  • 算材料成本的时候要算增值税吗?
  • 以前年度损益是所有者权益吗
  • 机器维修费的会计科目
  • 事业单位其他应付款贷方余额表示什么
  • 发票勾选没有确认怎么办
  • 应交所得税的计算例题
  • 差旅补贴需要缴纳个税吗
  • 增值税销项税抵扣不完能退给企业吗?
  • 工业企业哪些房子要交房产税
  • 关于纳税人取得的发票
  • 非居民企业取得股息红利企业所得税
  • 全年一次性奖金计税方式2023
  • 生产企业销售原材料所取得的收入属于( )
  • 汽车销售公司买车后续维修保养
  • 委托研发受托方怎么做账
  • 净利润与毛利润那个会大一点
  • 合伙企业税收优惠政策2023
  • 股权投资涉税问题
  • 自建不动产领用原材料的进项税
  • 挖机所有权需要办理什么手续吗
  • 工伤保险的作用有
  • 银行贷款需要走第三方账户,第三方需要提供身份证
  • 桌面右键个性化没有关联的程序
  • 私立医院执行什么会计准则
  • vue中的...
  • 填制的凭证内容有哪些
  • 金融企业营业税税率是多少
  • laravel 分层
  • 浅谈socket同步和异步、阻塞和非阻塞、I/O模型
  • 新成立公司建账
  • uni vuex
  • 出口抵扣进项的设备免税依据
  • split 文件分割
  • 处置抵债资产的账务处理
  • 售后租回交易形成融资租赁,销售时不确认处置损益
  • 国企无偿划转股权免印花税
  • 工业总产值和营业收入关系
  • phpcms怎么样
  • 取得农产品免税发票如何账务处理
  • 转让股权个税的计税基础
  • 公司购买绿植入什么科目
  • 简易征收适用哪些业务租赁
  • 固定资产补入账和补提折旧
  • 小规模企业免税收入会计分录
  • 发票开错抬头做红字发票的账务处理是?
  • 调账和调帐区别
  • 核定征收企业有没有自然人电子税务
  • 开票怎么凑齐小票
  • 未抵扣机动车专票红字发票怎么填开
  • 法院强制执行扣完款就完事了吗
  • 工程承建方给予什么赔偿
  • 工程款发票怎么做分录
  • 营改增后建筑业税率变化情况
  • 发票章盖得不清晰怎么办
  • 房地产开发企业资质管理规定
  • sql server错误和使用情况报告
  • sql*loader-309
  • solaris教程
  • 我用u盘装系统
  • windows server 2012将计算机图标添加到桌面(图文教程)
  • win10 rs1是什么版本
  • Ubuntu下配置vpn工作环境
  • windows8如何调用摄像头
  • 一文看懂linux内核
  • 怎么禁止电脑qq自动启动
  • jquery和原生js性能
  • javascript到c
  • 如何设置edittext控件中的文字
  • linux升级python2.7
  • jQuery仿写百度百科的目录树
  • javascript怎么用
  • 河北国家税务局发票查询系统
  • 2021年江苏省考常州职位表
  • 重庆税务查询企业信息查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设