我正在使用下载管理器的Android方下载来自不同来源的文件。现在我应该为这个应用程序创建一个服务器端。制作http/https文件共享服务器的Android下载管理器

的一切都在这里首先是为Android端简单的代码:

private DownloadManager mgr = null;

private long lastDownload = -1L;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mgr = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);

registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

registerReceiver(onNotificationClick, new IntentFilter(DownloadManager.ACTION_NOTIFICATION_CLICKED));

}

@Override

public void onDestroy() {

super.onDestroy();

unregisterReceiver(onComplete);

unregisterReceiver(onNotificationClick);

}

public void startDownload(View v) {

// Uri uri = Uri.parse("http://commonsware.com/misc/test.mp4");

Uri uri = Uri.parse("http://xxx.xxx.xxx.xxx:8080/FileUpload/asd.mp3");

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).mkdirs();

lastDownload = mgr.enqueue(new DownloadManager.Request(uri)

.setAllowedNetworkTypes(

DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)

.setAllowedOverRoaming(false).setTitle("Demo")

.setDescription("Something useful. No, really.")

.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "test.mp4"));

v.setEnabled(false);

findViewById(R.id.query).setEnabled(true);

}

public void queryStatus(View v) {

Cursor c = mgr.query(new DownloadManager.Query().setFilterById(lastDownload));

if (c == null) {

Toast.makeText(this, "Download not found!", Toast.LENGTH_LONG).show();

} else {

c.moveToFirst();

Log.d(getClass().getName(),

"COLUMN_ID: " + c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)));

Log.d(getClass().getName(),

"COLUMN_BYTES_DOWNLOADED_SO_FAR: "

+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)));

Log.d(getClass().getName(),

"COLUMN_LAST_MODIFIED_TIMESTAMP: "

+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP)));

Log.d(getClass().getName(),

"COLUMN_LOCAL_URI: " + c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)));

Log.d(getClass().getName(),

"COLUMN_STATUS: " + c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)));

Log.d(getClass().getName(),

"COLUMN_REASON: " + c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON)));

Toast.makeText(this, statusMessage(c), Toast.LENGTH_LONG).show();

}

}

public void viewLog(View v) {

startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));

}

private String statusMessage(Cursor c) {

String msg = "???";

switch (c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS))) {

case DownloadManager.STATUS_FAILED:

msg = "Download failed!";

break;

case DownloadManager.STATUS_PAUSED:

msg = "Download paused!";

break;

case DownloadManager.STATUS_PENDING:

msg = "Download pending!";

break;

case DownloadManager.STATUS_RUNNING:

msg = "Download in progress!";

break;

case DownloadManager.STATUS_SUCCESSFUL:

msg = "Download complete!";

break;

default:

msg = "Download is nowhere in sight";

break;

}

return (msg);

}

BroadcastReceiver onComplete = new BroadcastReceiver() {

public void onReceive(Context ctxt, Intent intent) {

findViewById(R.id.start).setEnabled(true);

}

};

BroadcastReceiver onNotificationClick = new BroadcastReceiver() {

public void onReceive(Context ctxt, Intent intent) {

Toast.makeText(ctxt, "Ummmm...hi!", Toast.LENGTH_LONG).show();

}

};

正如你可以看到我tryed使用它。如果我把一些文件放入WebProject - > WebContent * 比我可以下载它 *。但我需要访问服务器计算机中的所有文件。 (我认为我应该使用一个servlet,它可以处理下载管理器的请求,并可以以某种方式上传文件,但我不确定它。)Android的下载管理器只能处理HTTP和HTTPS。

我将实现服务器端,但我真的不知道该怎么做,所以问题是:我如何能实现一个合适的服务器端可以服务于该下载管理器的请求。

谢谢,如果你能帮助你。

2013-04-06

TAR515

+0

问题是什么? –

2013-04-06 08:13:28

+0

我会实现服务器端,但我真的不知道该怎么做,所以问题是:我怎样才能实现一个正确的服务器端,可以服务于下载管理器的请求。 –

2013-04-06 08:23:50

android文件下载含服务器端,制作http/https文件共享服务器的Android下载管理器相关推荐

  1. 解决Android Studio 无法通过gradle 下载https://dl.google.com/android/repository/addons_list-3.xml 解决办法

    安卓gradle的时候,会弹出来这样报错,经常几个小时甚至一天就没有了. Task :prepareKotlinBuildScriptModel UP-TO-DATE IOException: htt ...

  2. Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)

    Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例) 标签: 注册登录Android开发servlet 2017-04-18 20:34  454人阅读  评论(1) ...

  3. Android课程设计:基于离线地图服务器的Android地图应用

    Android开发课程设计:基于离线地图服务器的Android地图应用 此项目的灵感来源于伯克利cs61b的Project3: cs61b的官网地址:Project 3: Bear Maps 我的实验 ...

  4. Android安全开发之安全使用HTTPS

    此文章转载于点击打开链接 Android安全开发之安全使用HTTPS 1.HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验.主机名弱校验.webview未校验证书的检测项,这些检测项是针对AP ...

  5. android端与服务端差别,Android客户端和服务器端编程

    我正在尝试运行我在网上找到的服务器端和客户端示例. 这是服务器: public class ServerActivity extends Activity { private TextView ser ...

  6. app开发历程————Android程序解析服务器端的JSON格式数据,显示在界面上

    上一篇文章写的是服务器端利用Servlet 返回JSON字符串,本文主要是利用android客户端访问服务器端链接,解析JSON格式数据,放到相应的位置上. 首先,android程序的布局文件main ...

  7. android 如何从服务器端的数据库中拿数据,在客户端显示类?

    ============问题描述============ android 如何从服务器端的数据库中拿数据,在客户端显示类? ============解决方案1============ 写一个网络访问的 ...

  8. Android客户端与服务器端socket通讯

    Android客户端与服务器端的Socket通讯: socket通讯依赖IP地址和端口号,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务. 服务器端代码: 实例化主类, ...

  9. Android 文件下载,根据url获取真正的文件名和后缀名(包括重定向的url)

    Android文件下载时,有时候我们需要根据url拿到要下载文件的名字和后缀. url分两种, 一种是静态url:即url后面就是文件名,例如:https://qd.myapp.com/myapp/q ...

最新文章

  1. MD5SHA加密util类(Java)
  2. xss攻击突破转义_WEB安全之XSS攻击方式与防御方式
  3. python大括号用法_Python中各种括号的区别、用途及使用方法
  4. sip gw功能包括_完整SIP/SDP媒体协商概论-SIP/WebRTC概要
  5. 机器学习:最大似然估计与最大后验概率估计
  6. SD-WAN新价值:中企通信与Fortinet强强联合 安全先行
  7. 一个请求多个响应_一个TCP连接到底可以发多少个HTTP请求?
  8. 使用SharedPreferences存储和读取数据
  9. 收拾了一下书架,感觉还是像破烂货市场一样
  10. react-native 错误捕捉与处理
  11. Oracle 提取汉子去除非汉子数据(保留标点符号)
  12. 转科普CPU Cache line
  13. 用计算机弹生日歌,神秘操作!吴丹妮酷狗直播竟用计算器唱生日歌!
  14. Umbraco 非常简单,扩展性很强的一个CMS
  15. 联想计算机设置恢复出厂,联想电脑一键恢复出厂设置使用方法
  16. unity 物体高亮显示
  17. 转:听听别人怎么说:VueJS 与 ReactJS
  18. provided port 35589 is not reachable
  19. EXCEL填入数据,自动出现当天日期
  20. 爬虫攻守道 - 2023最新 - Python Selenium 实现 - 数据去伪存真,正则表达式谁与争锋 - 爬取某天气网站历史数据

热门文章

  1. c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...
  2. c++源码矢量图形编辑器_下一代代码编辑器的设想
  3. win7蓝屏0x000000f4修复_注意:关于近期多数电脑蓝屏的处理和预防方法
  4. 凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法
  5. pycharm不同py文件共享参数_PyCharm安装笔记
  6. mysql的每隔1分钟定时_mysql定时任务
  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<散点图>python)
  8. 【转】05.Dicom 学习笔记-DICOM C-Echo 消息服务
  9. ASP.Net请求处理机制初步探索之旅 - Part 3 管道
  10. C#多线程编程系列(五)- 使用任务并行库