Intent.ACTION_GET_CONTENT和Intent.ACTION_PICK之间的区别
我试图让用户select任何他们想要在他们的设备上使用的图像作为壁纸应用程序,我正在build设。 出于某种原因,当我写:
Intent myIntent = new Intent(Intent.ACTION_PICK); myIntent.setType("image/*"); startActivityForResult(myIntent, 100);
我直接去画廊,但是当我写:
Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT, null); myIntent.setType("image/*"); startActivityForResult(myIntent, 100);
我可以从Gallery或Google Drive中进行select。 什么是最好的方式让用户select什么应用程序来检索图片从每一次? 或者为什么这两个不同的意图常数有什么不同?
你的第一个Intent
是无效的。 ACTION_PICK
的协议要求你提供一个Uri
表示你从中select的集合。
什么是最好的方式让用户select什么应用程序来检索图片从每一次?
如果您希望用户根据MIMEtypesselect某些内容,请使用ACTION_GET_CONTENT
。
如果你有一些你希望用户select的特定集合(由Uri
标识),请使用ACTION_PICK
。
如果是平局,请使用ACTION_GET_CONTENT
。 虽然ACTION_PICK
并未正式废弃,但Dianne ACTION_GET_CONTENT
build议使用ACTION_GET_CONTENT
。
现代的行动是ACTION_GET_CONTENT
, 这是更好的支持 ,
ACTION_PICK
:
活动行动:从数据中select一个项目,返回所选内容。
input: getData()是包含从中选取项目的数据目录(vnd.android.cursor.dir / *)的URI。
输出:选取的项目的URI。
常量值: “android.intent.action.PICK”
差异 : –
活动操作:允许用户select特定types的数据并将其返回 。
这与ACTION_PICK不同,在这里我们只是说需要什么样的数据, 而不是用户可以从中select的现有数据的URI 。
A ACTION_GET_CONTENT
可以允许用户在运行时创build数据 (例如拍摄照片或录制声音 ),让他们浏览网页并下载所需的数据等。
参考 http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT
public static final String ACTION_GET_CONTENT
在API级别1中添加
活动操作:允许用户select特定types的数据并将其返回。 这与ACTION_PICK不同,在这里我们只是说需要什么样的数据,而不是用户可以从中select的现有数据的URI。 ACTION_GET_CONTENT可以允许用户在运行时创build数据(例如拍摄照片或录制声音),让他们浏览网页并下载所需的数据等。
通过http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT