-2

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

4

2 回答 2

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);
}
于 2013-08-26T07:55:28.380 回答
0

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

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

于 2013-08-26T07:56:11.863 回答