2013-07-30 52 views
1

我使用以下代碼共享圖像,如果圖像類型爲png,那麼確定。 但是我非常驚訝,如果圖像類型是jpeg,它仍然可以。爲什麼?謝謝!即使文件類型不匹配,也可以通過Intent共享文件

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
Uri screenshotUri = Uri.parse("file://"+arrPath[i]); 

sharingIntent.setType("image/png"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
startActivity(Intent.createChooser(sharingIntent, "Share image using")); 
+0

意圖認爲它是「圖像/ PNG」,因爲你明確地設置。你可以發送任何東西,它仍然會認爲它是一個圖像。您可以改爲使用URLConnection.guessContentTypeFromName(擴展名)來允許它選擇正確的Mime – rydgaze

+0

我可以使用此代碼從可繪製文件夾共享圖像嗎?如果是,那麼如何? – Erum

回答

1

這就是Intent系統的工作原理。

http://developer.android.com/guide/components/intents-filters.html#iobjs

一個Intent對象是信息的包。它包含接收意圖的組件感興趣的信息(例如要採取的操作和要採取的行動的數據)以及Android系統感興趣的信息(例如應該處理意圖的組件的類別以及有關如何啓動目標活動)。

實際處理文件的責任由註冊處理這種意圖的應用程序留下。在這個階段,它不會關心/檢查文件是JPG還是PNG。

你基本上在說「嗨,分享應用程序!我有你的PNG!」

我不確定你到底是什麼,但如果你不想共享jpgs,你需要在你的代碼中處理它。

相關問題