资料阅读:要求先下载后打开。
思想:下载是使用的方法是XUtils,打开是利用的手机自装的打开软件打开。
在ListView的Adapter中进行设置。
// 点击条目之后,如果文件没有下载,先下载,如果下载过了,打开
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (info.isDownload()) {// 文件已经存在了
// TODO 下载或者打开
Intent intent;
String mimeType = "";
//fileType,对象获取的信息类型
if (fileType.equals("0")) { // 图片
mimeType = "image/*";
} else { // 普通文档
mimeType = "text/plain";
}
intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, mimeType);
mContext.startActivity(intent);
} else {// 文件不存在了
Log.i("url",url);
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download(url, Constant.SAVEPATH
+ studyName, true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
new RequestCallBack<File>() {
@Override
public void onStart() {
Toast.makeText(mContext, "开始下载",
Toast.LENGTH_SHORT).show();
pdUtils.showProgressDialog(mContext);
}
@Override
public void onLoading(long total, long current,
boolean isUploading) {
//
// Toast.makeText(mContext,
// current + "--" + total,
// Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess(
ResponseInfo<File> responseInfo) {
info.setDownload(true);
notifyDataSetChanged();
Toast.makeText(mContext, "下载完成",
Toast.LENGTH_SHORT).show();
pdUtils.dismissProgressDialog();
}
@Override
public void onFailure(HttpException error,
String msg) {
Toast.makeText(mContext, "下载失败",
Toast.LENGTH_SHORT).show();
pdUtils.dismissProgressDialog();
}
});
// 下载
// new Download_2(mHandler, url,
// totalBookName,viewHolder.pb_studybook,viewHolder.tv_pb).start();//
}
}
});
视频播放,用到的方法:
Intent intent = new Intent(Intent.ACTION_VIEW);
String type = "video/* ";
Uri uri = Uri.parse(mVideoUrl);
intent.setDataAndType(uri, type);
startActivity(intent);