Я хочу скачать pdf файл на основе URL с сервера.Некоторые файлы загружаются и запускаются в программе просмотра PDF должным образом, но некоторые другие при попытке запустить, показывая «не может отобразить PDF (« filename.pdf имеет недопустимый формат »)».Но URL-адрес действителен и при загрузке из браузера работает нормально.
Вот мой код для загрузки pdf
final FileDownloadRESTCallEx2 restCall = new FileDownloadRESTCallEx2(urlModified,"fileType",DOWNLOADED_LOCATION, fname+".pdf", getContext(), true);
restCall.setIPlanetDirectoryToken(CookieValue);
restCall.execute();
Вот метод запуска метода FileDownloadRESTCall
public class FileDownloadRESTCallEx2 extends FileDownloadRESTCall {
private boolean showDialog = true;
public FileDownloadRESTCallEx2(final String query, final String headLine, String fdir, String fname, Context ctx, Boolean loading) {
super(query, headLine, fdir, fname, ctx);
}
@Override
protected boolean showDialog(){
return showDialog;
}
protected void setShowDialog(boolean flag){
showDialog = flag;
}
@Override
protected void postProcessInUI() {
try {
String filepath2view = file2view();
if (filepath2view == null || filepath2view.length() < 1)
return;
if (FileUtils.isEmptyFile(filepath2view))
return;
String filename= filaname();
Toast.makeText(getAppContext(), DOWNLOADED + " " + filename, Toast.LENGTH_LONG).show();
launchPdfViewer(getContext(), filepath2view);
}
}
}
Метод launchpdfviewer - это
public static void launchPdfViewer(final Context context, String filepath2view) {
try {
String fileType = "application/pdf";
if (deviceCanHandleFileType(context, fileType)) {
Intent intent = new Intent(Intent.ACTION_VIEW);
File file = new File(filepath2view);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(file), fileType);
context.startActivity(intent);
} else {
final Toast toast = Toast.makeText(context, "To open this document, your device\n requires a native PDF reader.", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
} catch (Exception ex){
EikonLogger.error("e",ex.getMessage());
}
}
, он показывает сообщение об ошибке только для некоторых файлов, даже если в URL-адресе находится допустимый файл.Любая помощь приветствуется