2010-12-06 99 views
2

我使用非常標準的代碼從我的應用程序發送圖像。用戶給我發電子郵件說他們的默認消息應用程序沒有顯示在選擇器中,奇怪的是我的手機也發生了同樣的情況。我正在玩弄意圖的MIME類型。 "text/plain"顯示了一組選項,包括我的Messages應用程序,並且"*/*"顯示了一噸。我是否懶得將MIME類型設置爲"*/*",這樣我就不會被應用程序過濾,這些應用程序應該是用戶發送圖像的選項?或者,這幾乎是要走的路?這是我不喜歡MIME類型和ACTION_SEND意向選擇器

 Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("image/jpeg"); 
     Uri uri = Uri.fromFile(file); 
     intent.putExtra(Intent.EXTRA_STREAM, uri); 
     activity.startActivity(Intent.createChooser(intent, "Custom Heading...")); 

一個副作用是,一些應用程序(臉譜,Handcent)已經註冊了多個意圖發送各種MIME類型,所以他們出現在列表中不止一次當MIME類型是"*/*"

回答

4

內置的消息應該處理您的MIME類型,所以它可能是一個平臺,具體問題:

 <intent-filter> 
      <action android:name="android.intent.action.SEND" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType="image/*" /> 
     </intent-filter> 

Check out the source for all the mime types that are handled