android 网络程序下载,Android之网络文件下载
环境搭建:
本地服务器(下载wamp【Windows, Apache, MySQL, PHP 】,安装即可,然后将网页或文件放进 www directory)
虚拟机(访问本地服务器的ip:10.0.2.2)
注意事项:
权限相关
网络访问 存储卡访问
文件权限 如:chmod 777 /data
源代码:
package com.example.net_ex04;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
ProgressBar progressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar)this.findViewById(R.id.progressBar1);
Button button = (Button)this.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
String url = "http://10.0.2.2/Music.flv";
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(0);
new DownloadTask().execute(url);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class DownloadTask extends AsyncTask{
public DownloadTask() {
// TODO Auto-generated constructor stub
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
HttpGet httpRequest = new HttpGet(params[0]);
HttpClient httpClient = new DefaultHttpClient();
try{
HttpResponse httpResponse = httpClient.execute(httpRequest);
HttpEntity entity = httpResponse.getEntity();
long length = entity.getContentLength();
progressBar.setMax((int)length);
InputStream inputStream = entity.getContent();
byte[] b = new byte[1024];
int readedLength = -1;
//File file = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "Music.flv");
File file = new File("/data/Music.flv");
if(!file.exists())
{
file.createNewFile();
}
OutputStream outputStream = new FileOutputStream(file);
int count = 0;
while((readedLength = inputStream.read(b)) != -1){
outputStream.write(b, 0, readedLength);
count += readedLength;
publishProgress(count);
}
}catch(ClientProtocolException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return null;
}
protected void onProgressUpdate(Integer... values){
progressBar.setProgress(values[0]);
super.onProgressUpdate(values);
}
}
}
android 网络程序下载,Android之网络文件下载相关推荐
- PhoneGap对比html5写android应用程序【android进化三十八】
什么是PhoneGap,其实就是在手机中可以写html代码的插件,下面一段话来源网摘"PhoneGap是一个开放源代码的,跨平台的构建移动应用程序的框架.在PhoneGap中,完全通过HTM ...
- android 自定义模板下载,android studio 自定义模板
由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...
- android获取程序名称,Android获取应用程序名称(ApplicationName)示例
MainActivity如下: 代码如下: package cn.testapplicationname; import android.os.Bundle; import android.widge ...
- Android应用程序文件结构,Android项目文件及应用程序—目录结构详解
1. src目录:是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中.如建立EditView工程,ADT根据用户在工程向导中的"Create Acti ...
- android版本11下载,android 11正式版下载-android 11正式版系统下载-pk38游戏网
android 11正式版系统是一款非常强大安卓手机原生系统,于近日发布正式版本,android 11正式版对大部分机型都进行优化,强大的控制功能以及非常简单的操作方式带给玩家最快捷的便利. andr ...
- android 镂空字体下载,Android开发TextvView实现镂空字体效果
记录一下... 自定义TextView public class HollowTextView extends AppCompatTextView { private Paint mTextPaint ...
- android 镂空字体下载,Android——自定义镂空掩饰控件
刚学完ViewDragHelper和PorterDuffXferMode的我,突然想做一个这样效果的自定义控件:点击ListView的列表项,通过ViewDragHelper用动画方式上下各弹出一个控 ...
- android 最新 support,android support v7 下载-android support.v7包 官方最新版 - 河东下载站...
android support v7是一款功能非常实用的android在进行开发的过程中,必须要进行使用的一个包:这款软件作为一个功能非常全面的功能包,也是目前为止最新的功能包,是您这使用Androi ...
- android 性能测试工具下载,Android性能测试 一些适用于Android Studio的代码审查和性能测试工具...
导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...
最新文章
- 'utf-8' codec can't decode byte 0xff in position 0
- LinQ中Skip()方法和Take()方法的使用
- stdafx.h的作用以及原理
- Python入门100题 | 第060题
- iptables的增删改查
- 【IBatis.Net】 各种配置说明
- CodeForces - 1368E Ski Accidents(拓扑排序)
- 第一章:Java语言概述
- js获取DIV的位置坐标的三种方法!
- 计算机选择题在线,计算机基础知识选择题题库全集.doc
- eclipse使用jsp
- 地址总线、数据总线、控制总线
- qiankun加载react子应用报错[import-html-entry]: error occurs while executing normal script
- k8s 部署 xxl-job-admin:2.3.0
- 【DDRNet】DDRNet项目使用单GPU、自己的数据集训练、得到测试图像
- 【vscode】vscode常用插件介绍
- RealSense D435深度相机开发(一)---- 基础介绍
- [css] 积累(old)
- 项目风险的主要来源有哪些?应如何防范
- 戴尔霄龙服务器销售商,搭载AMD EPYC“霄龙”处理器:DELL 戴尔 发布 EMC PowerEdge R7415 、R7425 和 R6415 服务器...
热门文章
- python split函数 空格_python上手--10行代码读懂红楼梦
- python收集数据程序_基于Python语言的互联网数据收集软件的设计
- 山海伏妖录java_山海伏妖录攻略大全 剧情结局加点妖兽大全
- Java集合:什么是Java集合?
- 向MIP开源项目提交Issues
- Sublime Text 3 无法输入中文解决方案
- Problem B: 求各位数字之和
- CSS属性(display)
- 在eclipse中启动Tomcat访问localhost:8080失败项目添加进Tomcat在webapp中找不到
- linux用户及权限详解(20170425)