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