点击(此处)折叠或打开
-
private static void checkCanHandleDownload(Context context, String mimeType, int destination,
-
boolean isPublicApi) throws GenerateSaveFileError {
-
if (isPublicApi) {
-
return;
-
}
-
Log.d(\"baron\",\"mimeType=\" + mimeType);//add by Hubin 2013/05/07
-
-
if (destination == Downloads.Impl.DESTINATION_EXTERNAL
-
|| destination == Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE) {
-
if (mimeType == null) {
-
throw new GenerateSaveFileError(Downloads.Impl.STATUS_NOT_ACCEPTABLE,
-
\"external download with no mime type not allowed\");
-
}
-
-
//to support pdf/doc/docx/xls/xlsx/ppt/pptx format downloading
-
if(mimeType.trim().equalsIgnoreCase(\"application/pdf\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/msword\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/vnd.ms-excel\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/vnd.ms-powerpoint\")
-
|| mimeType.trim().equalsIgnoreCase(\"application/vnd.openxmlformats-officedocument.presentationml.presentation\")) {
-
Log.d(\"baron\",\"start to download \" + mimeType +\" file...\");
-
return;
-
}
-
-
if (!DrmRawContent.DRM_MIMETYPE_MESSAGE_STRING.equalsIgnoreCase(mimeType)) {
-
// Check to see if we are allowed to download this file. Only files
-
// that can be handled by the platform can be downloaded.
-
// special case DRM files, which we should always allow downloading.
-
Intent intent = new Intent(Intent.ACTION_VIEW);
-
-
// We can provide data as either content: or file: URIs,
-
// so allow both. (I think it would be nice if we just did
-
// everything as content: URIs)
-
// Actually, right now the download manager\'s UId restrictions
-
// prevent use from using content: so it\'s got to be file: or
-
// nothing
-
-
PackageManager pm = context.getPackageManager();
-
intent.setDataAndType(Uri.fromParts(\"file\", \"\", null), mimeType);
-
ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
-
//Log.i(Constants.TAG, \"*** FILENAME QUERY \" + intent + \": \" + list);
-
-
if (ri == null) {
-
if (Constants.LOGV) {
-
Log.v(Constants.TAG, \"no handler found for type \" + mimeType);
-
}
-
throw new GenerateSaveFileError(Downloads.Impl.STATUS_NOT_ACCEPTABLE,
-
\"no handler found for this download type\");
-
}
-
}
-
}
- }