Android 4 学习(14):Internet Resources
参考《Professional Android 4 Development》
使用Internet资源
打开URI
String myFeed = getString(R.string.my_feed);
try {
URL url = new URL(myFeed);
// Create a new HTTP URL connection
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream in = httpConnection.getInputStream();
processStream(in);
}
}catch (MalformedURLException e) {
Log.d(TAG, “Malformed URL Exception.”);
}catch (IOException e) {
Log.d(TAG, “IO Exception.”);
}
使用Download Manager
Download Manager是一个系统服务,可以这样获取:
String serviceString = Context.DOWNLOAD_SERVICE;
DownloadManager downloadManager;
downloadManager = (DownloadManager)getSystemService(serviceString);
开始下载
下载实际是将一个Download请求加入到下载队列的过程:
String serviceString = Context.DOWNLOAD_SERVICE;
DownloadManager downloadManager;
downloadManager = (DownloadManager)getSystemService(serviceString);
Uri uri = Uri.parse(“http://developer.android.com/shareables/icon_templates-v4.0.zip”);
DownloadManager.Request request = new Request(uri);
long reference = downloadManager.enqueue(request);
设置“限Wifi条件下下载”:
request.setAllowedNetworkTypes(Request.NETWORK_WIFI);
下载结束
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
long reference = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
if (myDownloadReference == reference) {
// Do something with downloaded file.
}
}
};
registerReceiver(receiver, filter);
修改下载文件夹
以写入SD卡为例,首先要获得写SD卡的权限:
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
设置存储路径:
request.setDestinationUri(Uri.fromFile(f));
存储文件:
request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, “Bugdroid.png”);
取消或删除下载:
downloadManager.remove(REFERENCE_1, REFERENCE_2, REFERENCE_3);
获取下载信息
@Override
public void onReceive(Context context, Intent intent) {
long reference = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
if (reference == myDownloadReference) {
Query myDownloadQuery = new Query();
myDownloadQuery.setFilterById(reference);
Cursor myDownload = downloadManager.query(myDownloadQuery);
if (myDownload.moveToFirst()) {
int fileNameIdx = myDownload.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
int fileUriIdx = myDownload.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI);
String fileName = myDownload.getString(fileNameIdx);
String fileUri = myDownload.getString(fileUriIdx);
// TODO Do something with the file.
}
myDownload.close();
}
}
Android 4 学习(14):Internet Resources的更多相关文章
- Android 4学习(3):概述 - Resources
在应用程序中,处理与代码逻辑无关资源的最佳实践是将其放到程序的外部,典型的资源包括字符串,图片等.Android中的资源文件都在res文件夹中,这些资源包括字符串,颜色,主题,样式,图画,布局,动画, ...
- 我的Android 4 学习系列之文件、保存状态和首选项
目录 使用Shared Preference 保留简单的应用程序数据 保存回话间的Activity实例数据 管理应用程序首选项和创建Preference Screen 保存并加载文件以及管理本地文件系 ...
- Android动画学习(二)——Tween Animation
前两天写过一篇Android动画学习的概述,大致的划分了下Android Animation的主要分类,没有看过的同学请移步:Android动画学习(一)——Android动画系统框架简介.今天接着来 ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
- Android Animation学习(六) View Animation介绍
Android Animation学习(六) View Animation介绍 View Animation View animation系统可以用来执行View上的Tween animation和F ...
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
Android Animation学习(三) ApiDemos解析:XML动画文件的使用 可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <o ...
- Android Animation学习(一) Property Animation原理介绍和API简介
Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- Android WiFiDirect 学习(二)——Service Discovery
Service Discovery 简介 在Android WifiDirect学习(一 )中,简单介绍了如何使用WifiDirect进行搜索——连接——传输. 这样会有一个问题,那就是你会搜索到到附 ...
- Android Animation学习(二) ApiDemos解析:基本Animatiors使用
Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.ObjectAnimator.AnimatorSet ApiDemos中Animation部分是单独 ...
随机推荐
- Chrome浏览器导入数字证书
1.打开 chrome ,点击 右上角的选项图标,在下拉列表中找到 设置 . 2.在设置页面中,滚动到页面的最底部,找到,并点击显示高级设置,找到 HTTPS/SSL 这一项,点击 管理证书 按键.
- linux下vim对于意外退出的文档的再次开启
转载的: 1.对于同一个文件如果上次已经打开,而未关闭的情况下,又打开该文件进行编辑时,会出现如下提醒: 这是由于已经打开但未闭关的文件,会在其目录下出现一个.swp的文件,由于是属于隐藏文件,可以用 ...
- Activity传递参数——传递复杂数据(Bunble包)
一.新建一个空的工程 二.在主界面中添加一个按钮 三.新建一个空的activity,并命名为TheAty 四.修改MainActivity.java中的onCreate函数 protected voi ...
- java中常用的帮助类。加快开发速度
数据库帮助类 package com.cwnu.uitl; import java.sql.*; /** * 数据库基础操作实现类 * * @author BlackWinter * * @date ...
- Eclipse上安装springsource-tool-suite(转)
Eclipse上安装springsource-tool-suite 版本必须匹配. spring tool suite 是一个基于eclipseIDE开发环境中的用于开发spring应用程序的工具.提 ...
- volatile 续
上次的问题在看了一篇博客后有了点理解了 博文地址为 http://www.cnblogs.com/dolphin0520/p/3920373.html 按照文章中写的,在并发编程中,我们通常会遇到以下 ...
- centos下配置dns,gateway,ip
centos网络配置实例 1,配置DNS vi /etc/resolv.conf 加入: 代码如下: nameserver 192.168.0.1 nameserver 8.8.8.8 names ...
- BZOJ - 3224 Tyvj 1728 普通平衡树 (treap/树状数组)
题目链接 treap及树状数组模板题. treap版: #include<bits/stdc++.h> using namespace std; typedef long long ll; ...
- PS基础教程[2]渐变工具的使用
PS中的渐变是一个很实用的工具,很多时候都会用到,我们在网页上看到的各种各样的颜色几乎都是一种渐变色,很少有一种颜色一层不变的.那么渐变如何使用呢?本次我们来介绍一下渐变的基本使用方法. 使用方法 1 ...
- 转载(原标题:网站再遭新威胁 Struts2又曝高危漏洞啦)
自从著名J2EE框架Apache Struts2被曝出可被远程攻击者利用的执行漏洞后,关于Struts2的安全性便广受关注.近日,安全研究人员则再次发现了Struts2存在远程代码执行的漏洞,Stru ...