所選文件的文件擴展名,我發起的意圖啓動的文件選擇器,用戶可以在選擇PDF文件時,他們選擇一個文件,它使用和上傳到服務器獲得來自意圖
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent,1);
返回onActivityResult
,我看一下這個文件的Uri
,看它是否包含.pdf
if(requestCode == 1 && resultCode == RESULT_OK){
Uri filePath = data.getData();
File file = new File(filePath.getPath());
if(filePath.toString().contains(".pdf")){
if(file.length() <= 1048576){
de.setPDFUri(filePath.toString());
}else{
Toast.makeText(this,"PDF cannot be more than 1 MB, please select another", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(this,"Can only upload PDF files", Toast.LENGTH_SHORT).show();
}
}
但是一些文件管理器應用程序(天文,資源管理器)這隻作品中,大部分的時間,我得到這樣的回報
file:///storage/sdcard0/Download/20131231103232738561744.pdf
和其他程序(內置的應用程序製造商是唯一的,到目前爲止我所看到的),我得到這樣
content://media/external/file/109
這顯然是一個回報率並沒有告訴我有關文件的任何事情,它的類型,並返回該文件的ContentProvider
信息。
有沒有辦法讓用戶選擇.pdf
文件通過發送意向或檢查uri並確保它是.pdf文件的方式?
此問題提供了一些關於如何從內容URI獲取文件路徑的想法:http://stackoverflow.com/questions/20067508 – NigelK