为什么当我使用setSelector方法时,它既不返回照相机活动,也不返回图片库活动,我有以下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent camera= new Intent("android.media.action.IMAGE_CAPTURE");
Intent gallery = new Intent();
gallery.setAction(android.content.Intent.ACTION_VIEW);
gallery.setType("image/*");
gallery.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
camera.setSelector(gallery);
startActivity(camera);
}
根据Android的参考API,“如果设置了选择器,它将用于寻找能够处理意图的实体,而不是意图的主要内容。”
我想我会得到一个对话框,打开画廊,而不是相机。但是,我得到的不是这些对话框,而是返回任意应用程序/活动的对话框,例如调用设置、网络设置、SIM工具包等。
当我移除camera.setSelector(gallery);
方法时,一切都像符咒一样工作,但当我使用camera.setSelector(gallery);
方法时,它既不返回相机活动,也不返回画廊活动。
有人能解释一下为什么我会与这些随意的活动而不是适当的对话吗?
我不想删除camera.setSelector(gallery);
,因为我试图理解它是如何工作的!
发布于 2014-11-21 01:33:02
替换此代码:
Intent camera= new Intent("android.media.action.IMAGE_CAPTURE");
在这方面:
Intent camera= new Intent(Intent.ACTION_VIEW,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
发布于 2014-11-21 01:43:31
使用此意图打开您的画廊
Intent pickPhoto = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
然后使用startActivityForResult从图片库获取选定的照片。希望这能帮上忙
https://stackoverflow.com/questions/27058036
复制