我在我的应用程序中尝试做的是让用户从手机的图库中选择一张图片。我正在使用的代码如下:
Intent intentBrowseFiles = new Intent();
intentBrowseFiles.setType("image/*");
intentBrowseFiles.setAction(Intent.ACTION_GET_CONTENT);
intentBrowseFiles.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
startActivityForResult(Intent.createChooser(intentBrowseFiles,"Select Picture"), SHOW_GALLERY);
提出:
intentBrowseFiles.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
我认为这只会激发画廊意图,但用户只需选择他的驱动器,保管箱和其他在线帐户以及本地图库...
我不想要任何其他远程资源,这里有什么我想念的吗?
答案 0 :(得分:3)
当您使用ACTION_GET_CONTENT
之类的意图操作时,您告诉系统选择要打开的应用。如果用户没有为其设置默认值,它将询问使用哪个应用。对话框中的应用程序将显示任何已声明可以处理该类型意图的应用程序。
如果您想使用意图启动特定的活动,则必须按名称调用它。这里的问题是,图库应用程序可能在不同的设备上以不同的名称命名,或者完全删除。
允许用户选择他们选择的应用通常正确的做法。它绝对是" Androidy"这样做的方法。
无论哪种方式,EXTRA_LOCAL_ONLY
仅告知接收应用应该仅返回存在的数据。它没有强制执行这种条件。