2016-12-25 19 views
0

我試圖在我的android應用程序上顯示不同類型的文件,但它只能用於PDF文件,以及當我嘗試顯示任何其他類型的文件時。我得到一個錯誤說:在我的Android應用程序上顯示不同文件時出錯

無法顯示PDF,無效的文件格式

這裏是我的代碼片段:

else if (currentFile.toString().contains(".pdf")) { 

    String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(".PDF"); 
    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(currentFile), mime); 
    startActivityForResult(intent, 10); 

} else if (currentFile.toString().contains(".doc")||currentFile.toString().contains(".docx")) { 

    String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(".doc"); 

    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(currentFile), mime); 
    startActivityForResult(intent, 10); 

} else if (currentFile.toString().contains(".jpg") || currentFile.toString().contains(".jpeg") || currentFile.toString().contains(".png")){ 
    String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(".jpg"); 

    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(currentFile), mime); 
    startActivityForResult(intent, 10); 
} 

回答

0

我能找到的解決方案我在這裏是我用過的代碼片段

private void openFile(File currentFile, String fileFormat) { 
    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(currentFile),fileFormat); 
    startActivity(intent); 
} 

我把這個方法叫做如下g:

........... 

       } else if (currentFile.toString().contains(".pdf")) 
       openFile(currentFile,"application/pdf"); 

      else if (currentFile.toString().contains(".doc") || currentFile.toString().contains(".docx")) 
       openFile(currentFile,"application/msword"); 

      else if (currentFile.toString().contains(".jpg") || 
        currentFile.toString().contains(".jpeg") || currentFile.toString().contains(".png")) 
       openFile(currentFile,"image/jpeg"); 
      else if(currentFile.toString().contains(".ppt") || currentFile.toString().contains(".pptx")) 
       // Powerpoint file 
       openFile(currentFile,"application/vnd.ms-powerpoint"); 
      else if(currentFile.toString().contains(".xls") || currentFile.toString().contains(".xlsx")) 
       // Excel file 
       openFile(currentFile, "application/vnd.ms-excel"); 
       else if(currentFile.toString().contains(".zip") || currentFile.toString().contains(".rar")) 
       // WAV audio file 
       openFile(currentFile,"application/x-wav"); 

      else if(currentFile.toString().contains(".rtf")) 
       // RTF file 
       openFile(currentFile,"application/rtf"); 

      else if(currentFile.toString().contains(".wav") || currentFile.toString().contains(".mp3")) 
       // WAV audio file 
       openFile(currentFile,"audio/x-wav"); 

      else if(currentFile.toString().contains(".gif")) 
       // GIF file 
       openFile(currentFile,"image/gif"); 
      else if(currentFile.toString().contains(".txt")) 
       // Text file 
       openFile(currentFile,"text/plain"); 
相關問題