在Android设备上下载大文件

时间:2013-08-26 07:50:29

标签: android

我正在编写一个Android-app,一个地图应用程序。要使用该应用程序,用户应下载离线地图文件。这个文件的大小是3GB ...是否可能/好主意在应用程序中下载这样一个大文件或者我必须要求用户在他/她的PC上下载文件并手动将文件复制到android设备

2 个答案:

答案 0 :(得分:1)

如果您确实希望使用Android自行下载文件,则应使用下载管理器为您执行任务:

public void startDownload(String url, String fileName) {
    Uri resource = Uri.parse(url);   
    DownloadManager.Request request = new DownloadManager.Request(resource);   
    request.setAllowedNetworkTypes(Request.NETWORK_WIFI);   
    request.setAllowedOverRoaming(false);   
    //set the file type 
    MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();  
    String mimeString = mimeTypeMap.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(url));  
    request.setMimeType(mimeString);  
    //show notification
    request.setShowRunningNotification(true);  
    request.setVisibleInDownloadsUi(true);  
    //set target directory
    request.setDestinationInExternalPublicDir("YOURCACHEDIR", fileName);  
    request.setTitle("Offline MAP downloading");   
    DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);  ;
    long id = downloadManager.enqueue(request);
    Log.i(TAG, "Start download, id = " + id);
}

答案 1 :(得分:0)

我会让用户免于在他/她的PC上下载它然后将文件复制到手机上的麻烦。手机能够很好地下载如此大的文件,当然,这款手机还有足够的存储空间。

但是,我建议你的应用程序通过WIFI下载此文件,并可选择通过移动网络下载。