參考:AndroidSDK/docs/reference/android/content/Intent
看到相關代碼,對這兩個參數的區別有點搞不清。
原文地址請保留http://www.cnblogs.com/rossoneri/p/3985597.html
現在知道的是new Intent(Intent.ACTION_GET_CONTENT, null)必須要setType("type/后綴"),否則會會彈出異常FATAL EXCEPTION:main android.content.ActivityNotFoundException,
ACTION_PICK可以不用setType()。但建議設置一下屬性,因為他們都是通過屬性來打開相應的應用程序。
專門從文檔摘下來說明,放一起比較下,以后再看這方面的說明也方便。就不翻譯了。程序猿嘛,總得看的懂英文文檔吧。
public static final String ACTION_GET_CONTENT
Activity Action: Allow the user to select a particular kind of data and return it. This is different than ACTION_PICK
in that here we just say what kind of data is desired, not a URI of existing data from which the user can pick. A ACTION_GET_CONTENT could allow the user to create the data as it runs (for example taking a picture or recording a sound), let them browse over the web and download the desired data, etc.
There are two main ways to use this action: if you want a specific kind of data, such as a person contact, you set the MIME type to the kind of data you want and launch it with startActivity(Intent)
. The system will then launch the best application to select that kind of data for you.
You may also be interested in any of a set of types of content the user can pick. For example, an e-mail application that wants to allow the user to add an attachment to an e-mail message can use this action to bring up a list of all of the types of content the user can attach.
In this case, you should wrap the GET_CONTENT intent with a chooser (through createChooser(Intent, CharSequence)
), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing. You will usually specify a broad MIME type (such as image/* or */*), resulting in a broad range of content types the user can select from.
When using such a broad GET_CONTENT action, it is often desirable to only pick from data that can be represented as a stream. This is accomplished by requiring the CATEGORY_OPENABLE
in the Intent.
Callers can optionally specify EXTRA_LOCAL_ONLY
to request that the launched content chooser only returns results representing data that is locally available on the device. For example, if this extra is set to true then an image picker should not show any pictures that are available from a remote server but not already on the local device (thus requiring they be downloaded when opened).
Input: getType()
is the desired MIME type to retrieve. Note that no URI is supplied in the intent, as there are no constraints on where the returned data originally comes from. You may also include the CATEGORY_OPENABLE
if you can only accept data that can be opened as a stream. You may use EXTRA_LOCAL_ONLY
to limit content selection to local data.
Output: The URI of the item that was picked. This must be a content: URI so that any receiver can access it.
public static final String ACTION_PICK
Activity Action: Pick an item from the data, returning what was selected.
Input: getData()
is URI containing a directory of data (vnd.android.cursor.dir/*) from which to pick an item.
Output: The URI of the item that was picked.