/*** 下载应用** @author Administrator*/class DownloadTask extends AsyncTask<String, Integer, String> {private Context context;private PowerManager.WakeLock mWakeLock;public DownloadTask(Context context) {this.context = context;}@Overrideprotected String doInBackground(String... sUrl) {InputStream input = null;OutputStream output = null;HttpURLConnection connection = null;File file = null;try {URL url = new URL(sUrl[0]);connection = (HttpURLConnection) url.openConnection();connection.connect();if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {return "Server returned HTTP "+ connection.getResponseCode() + " "+ connection.getResponseMessage();}int fileLength = connection.getContentLength();if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {file = new File(Environment.getExternalStorageDirectory(), DOWNLOAD_NAME);if (!file.exists()) {// 判断父文件夹是否存在if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}}} else {Toast.makeText(BlueToothActivity.this, "sd卡未挂载", Toast.LENGTH_LONG).show();}input = connection.getInputStream();output = new FileOutputStream(file);byte data[] = new byte[4096];long total = 0;int count;while ((count = input.read(data)) != -1) {if (isCancelled()) {input.close();return null;}total += count;if (fileLength > 0) // only if total length is knownpublishProgress((int) (total * 100 / fileLength));output.write(data, 0, count);}} catch (Exception e) {System.out.println(e.toString());return e.toString();} finally {try {if (output != null)output.close();if (input != null)input.close();} catch (IOException ignored) {}if (connection != null)connection.disconnect();}return null;}@Overrideprotected void onPreExecute() {BlueToothActivity.this.runOnUiThread(new Runnable() {public void run() {TextView tips = (TextView) findViewById(R.id.tips);GifImageView loading = (GifImageView) findViewById(R.id.gv_error);loading.setVisibility(View.VISIBLE);if (app=="duofangshipin"){tips.setText("xxxxapp下载中");}else {tips.setText("系统升级中。。");}}   //下载过程中的提示,可以按照实际情况更改});super.onPreExecute();PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,getClass().getName());mWakeLock.acquire();}@Overrideprotected void onProgressUpdate(Integer... progress) {super.onProgressUpdate(progress);}@Overrideprotected void onPostExecute(String result) {mWakeLock.release();BlueToothActivity.this.runOnUiThread(new Runnable() {public void run() {TextView tips = (TextView) findViewById(R.id.tips);GifImageView loading = (GifImageView) findViewById(R.id.gv_error);loading.setVisibility(View.INVISIBLE);tips.setText("");}});if (result != null) {// 申请多个权限。AndPermission.with(BlueToothActivity.this).requestCode(REQUEST_CODE_PERMISSION_SD).permission(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)// rationale作用是:用户拒绝一次权限,再次申请时先征求用户同意,再打开授权对话框,避免用户勾选不再提示。.rationale(rationaleListener).send();Toast.makeText(context, "您未打开SD卡权限" + result, Toast.LENGTH_LONG).show();} else {InstallUtil.install(BlueToothActivity.this, new File(Environment //这里的activity选你自己的.getExternalStorageDirectory(), DOWNLOAD_NAME));}}}

安卓开发 应用下载代码相关推荐

  1. 火鸟字幕合并器开源了,大家去参与开发和下载代码吧

    火鸟已开通新浪围脖,请加关注:http://t.sina.com.cn/gpli 火鸟字幕合并器在几年当中,逐渐成为了大家处理和合并字幕的一个有用的小工具,这也是火鸟本人当时做这个软件自娱自乐自用的一 ...

  2. 前端开发者快速入门安卓开发(安卓嵌入式开发课程经验总结)

    目录 1.安卓开发结构 2.xml 3.java 使用xml的标签 Bitmap 4.开发注意 1.安卓开发结构 安卓开发和前端有异曲同工之处,只是js换成了Java,它的界面层是xml格式的,布局全 ...

  3. 祖玛java代码_androidzuma 基于java开发的安卓祖玛龙珠游戏代码,可帮助 的 学习。 Develop 238万源代码下载- www.pudn.com...

    文件名称: androidzuma下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1174 KB 上传时间: 2013-11-27 下载次数: 1 提 供 者: ...

  4. 14天学会安卓开发(附PDF文档和全部示例代码)

    前言: 本人也是菜鸟,老鸟看了此文有哪里不好之处敬请指点,本书是根据<<Android应用开发揭秘>>攒写的,如何把一本书读薄,是一件值得思考的问题.相信看过那本书的都知道有5 ...

  5. [安卓开发笔记二]android Studio通过jni调用C++代码

    [安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...

  6. 安卓开发快速入门之 代码阅读技巧(二)

    1. 对于完全没接触过安卓的可以先大概扫一眼下面的网站或者在网上找安卓的教程.Android 教程 | 菜鸟教程https://www.runoob.com/android/android-tutor ...

  7. 安卓心理测试实训代码_我是如何从测试转到开发的

    分割线----------2019-1-2 更新,转岗成功了!半个月前,公司新项目启动了,我主动给领导提出要试着开发某模块功能,领导听了我的自荐和我最近的表现的学习态度(自我臆想)同意让我试一下,嘿嘿 ...

  8. 安卓开发代码工程结构(2)

    安卓开发代码工程结构 新建一个工程,目录文件如下图所示: .gradle与.idea文件 其中,.gradle与.idea为项目自己生成的文件,无需关注. 编译代码文件 我们的代码主要存放在app文件 ...

  9. 安卓开发实战(1)之程序员入门代码,Hello,world!

    系列文章目录 文章目录 系列文章目录 前言 一.新建一个安卓项目 二.创建安卓虚拟器 1.点击右上角后,点击create device,选择自己需要的版本即可 2.点击运行 总结,自己在运行中出现的问 ...

最新文章

  1. java数据结构-HashMap
  2. debian apt-get 国内常用 镜像源
  3. 关于Exchang server 2010 MCITP
  4. Java多线程例子讲解
  5. Android 百度地图开发(一)
  6. 土木工程和计算机专硕,第一次发帖 关于大工土木专硕
  7. SpringBoot :cannot be cast to org.springframework.web.accept.ContentNegotiationManager
  8. swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库
  9. leetcode - 1218. 最长定差子序列 (使用哈希表)
  10. 【AD】如何删除AD20右下角Title
  11. 老司机翻车现场:一个业余程序员组织如何收到滴滴的侵权通知?
  12. LuckyFrame执行Web自动化用例
  13. 【Python】AxisError: axis 0 is out of bounds for array of dimension 0
  14. C语言二维数组作为函数的参数
  15. 收藏丨8个常用中文OCR数据集,附下载链接
  16. 最大化参数 火车头_新手必看的火车头采集器使用入门教程_图文解说版!(看完包会)...
  17. redis 客户端操作命令
  18. 伍斯特理工学院计算机,伍斯特理工大学
  19. 花生壳内网穿透+https+tomcat不能进行网页访问
  20. 估值近百亿,“创维三把手”酷开科技能否顺利赶考?

热门文章

  1. [英语]ab/abs/ac/acr词根讲解
  2. JS - 解决鼠标单击、双击事件冲突问题(原生js实现)
  3. 《西游记》中话“修行”【转】
  4. uniapp返回上一级选择性刷新数据,不重新加载页面
  5. 几万条数据的excel导入到mysql_excel十几万行数据快速导入数据库研究(转,下面那个方法看看还是可以的)...
  6. 启动redis出现闪退(已解决)
  7. MOOC慕课进入课程后无法刷新出视频、作业等界面
  8. 高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯
  9. 1-甲基-3-丁基咪唑四卤化铁([C4mim]FeX4,X=Cl,Br)磁性离子液体
  10. git 加速 看一下效果