
我有一个应用程序,其中包含一些指向Web上文件的链接.我希望在用户选择将文件下载到设备后 – 该文件将自动打开.
这是我的下载代码:
private voID downloadfile(String url) { if (GeneralHelper.isNetworkAvailable(this)) { Uri uri = Uri.parse(url); DownloadManager.Request r = new DownloadManager.Request(uri); String filename = url.substring( url.lastIndexOf('/')+ 1, url.length() ); // This put the download in the same Download dir the browser uses r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename); r.allowScanningByMediaScanner(); // Notify user when download is completed // (Seems to be available since Honeycomb only) r.setNotificationVisibility(DownloadManager.Request.VISIBIliTY_VISIBLE_NOTIFY_COMPLETED); // Start download DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(r); } else { // .... } }下载完成后如何添加代码打开文件?
解决方法:
将此broadcastReceiver添加到您的代码中,并使用uri启动和意图.
broadcastReceiver receiver = new broadcastReceiver() { @OverrIDe public voID onReceive(Context context, Intent intent) { String action = intent.getAction(); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { long downloadID = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); DownloadManager.query query = new DownloadManager.query(); query.setFilterByID(enq); downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); Cursor c = downloadManager.query(query); if (c.movetoFirst()) { int columnIndex = c.getColumnIndex(DownloadManager.ColUMN_STATUS); if (DownloadManager.STATUS_SUCCESSFul == c.getInt(columnIndex)) { String uriString = c.getString(c.getColumnIndex(DownloadManager.ColUMN_LOCAL_URI)); //Todo : Use this local uri and launch intent to open file } } } } }; registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));当您开始下载时,进行以下更改,将’enq’声明为long类型
enq=dm.enqueue(r); 总结 以上是内存溢出为你收集整理的在Android下载后打开下载的文件全部内容,希望文章能够帮你解决在Android下载后打开下载的文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)