我正在编写一个Android-app,一个地图应用程序。要使用该应用程序,用户应下载离线地图文件。这个文件的大小是3GB ...是否可能/好主意在应用程序中下载这样一个大文件或者我必须要求用户在他/她的PC上下载文件并手动将文件复制到android设备
答案 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下载此文件,并可选择通过移动网络下载。