您可以自己研究它,在Eclipse中運行DDMS或LogCat視圖,並觀察在您的或其他應用程序爲ACTION_SEND意圖啓動活動時編寫的調試日誌。
你會看到:
ActivityManager: START {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)}
然後按照還會記錄實際上當你選擇的應用程序發送。你會看到這樣的事情:
ActivityManager: START {act=android.intent.action.SEND typ=application/zip flg=0x13000000 cmp=com.android.bluetooth/.opp.BluetoothOppLauncherActivity (has extras)}
或者你也可以看到這一點:
ActivityManager: START {act=android.intent.action.SEND typ=*/* flg=0x13000000 cmp=com.google.android.apps.docs/.shareitem.UploadSharedItemActivity (has extras)}
你在這裏看到的差異。一個應用程序設置實際的MIME類型=應用程序/ ZIP,其他應用程序設置MIME類型*/*。這意味着Docs應用程序不是用來發送zip文件的。
進一步探索,使用好的應用AppXPlore,打開文件,重新創建清單文檔應用的,並期待在塊與UploadSharedItemActivity(其匹配*/*類型的),其意圖濾波器塊上:
<activity label="Docs" name=".shareitem.UploadSharedItemActivity">
<intent-filter>
<action name="android.intent.action.SEND" />
<action name="android.intent.action.SEND_MULTIPLE" />
<category name="android.intent.category.DEFAULT" />
<data mimeType="video/*" />
<data mimeType="image/*" />
<data mimeType="text/*" />
<data mimeType="application/x-vnd.oasis.opendocument.spreadsheet" />
<data mimeType="application/vnd.ms-powerpoint" />
<data mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
<data mimeType="application/msword" />
<data mimeType="application/pdf" />
<data mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<data mimeType="application/pdf" />
<data mimeType="application/rtf" />
<data mimeType="application/vnd.ms-excel" />
<data mimeType="application/vnd.oasis.opendocument.text" />
<data mimeType="application/vnd.sun.xml.writer" />
</intent-filter>
這證明Docs應用程序旨在發送預定義的文件類型,Zip不在其中。
您的應用可以尊重Docs應用的這一決定,也可以使用*/* MIME類型發送,但在這種情況下,用戶可能會困惑爲什麼會有意外的應用不處理列表中的Zip文件。我會依靠第一個選項,並使用實際的MIME類型。
謝謝,這是非常有幫助的。 (將授予21小時) – ab11 2012-02-02 20:43:19