2010-12-16 108 views
2

How to open Email program via Intents (but only an Email program)的答案顯示瞭如何通過調用intent.setType(「message/rfc822」)來顯示僅帶有顯示的電子郵件程序的選擇器。MMS(SMS)消息的Android MIME類型?

我想做同樣的事情,但選擇彩信功能(甚至只是短信),而不是電子郵件程序。

最終目標是創建一個「share with」選擇器,根據消息的形式發送不同的內容。 (因爲電子郵件可能比文字或推文長很多,並且可以包含視頻附件。)

+0

我不會承擔每個電子郵件程序都支持該MIME類型。 – CommonsWare 2010-12-17 01:01:33

+0

我正在做類似的事情! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42 2013-01-22 07:32:48

回答

2

我相信這是MMS消息的MIME類型:「application/vnd.wap.mms-message 「 這是SMS消息的MIME類型: 」vnd.android-DIR/MMS-SM「

實施例:

Manifest.xml文件:

<receiver android:name=".SMSReceiver"> 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      <data android:mimeType="vnd.android-dir/mms-sms" />    
     </intent-filter> 
    </receiver> 
    <service android:name=".SMSReceiverService"/> 
    <receiver android:name=".MMSReceiver"> 
     <intent-filter> 
      <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" /> 
      <data android:mimeType="application/vnd.wap.mms-message" /> 
     </intent-filter> 
    </receiver> 

這是如何我已經使用到目前爲止在我的Android開發中的MIME類型。

+0

將數據mimeType添加到SMSReceiver似乎不工作。我離開了這個,我的SMSReceiver工作正常。 – toobsco42 2013-01-26 19:48:23

+0

另外我認爲你正在尋找的MIME類型是'vnd.android-dir/mms-sms'(注意結尾's') – xbakesx 2013-05-08 17:17:05

+0

@xbakesx謝謝:) – 2013-07-31 15:47:17

1

我發現這個link to jTribe's blog。似乎有一個如何做到這一點的功能性示例,但坦率地說,我找不到證明這是正確的任何文檔。它做了一些奇怪的事情像設置操作ACTION_VIEW(而不是ACTION_SEND),然後使用一個String PARAM,而不是在Intent類的靜態變量...但這裏的代碼:

Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
sendIntent.putExtra("sms_body", "The SMS text"); 
sendIntent.setType("vnd.android-dir/mms-sms"); 
startActivity(sendIntent);