【问题标题】:Android image picker for local files only仅适用于本地文件的 Android 图像选择器
【发布时间】:2012-02-23 04:56:04
【问题描述】:

我正在使用内置的 Android 图像选择器,如下所示:

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
m_activity.startActivityForResult(photoPickerIntent, PHOTO_PICKER_ID);

有没有办法限制它只显示本地可用的文件。在我的设备上,它目前正在拾取 Picasa 缩略图,我想排除设备上实际不存在的所有图像。

【问题讨论】:

  • 您似乎正在使用一些已在您的 SD 卡上存储 Picasa 缩略图的应用程序。代码看起来不错

标签: android image picker picasa


【解决方案1】:

添加intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);将只允许本地文件。它将排除 picasa 图像。希望这会有所帮助。

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
    startActivityForResult(Intent.createChooser(intent,
            "Complete action using"), PHOTO_PICKER_ID);

【讨论】:

  • EXTRA_LOCAL_ONLYflag 的唯一问题是它是 only available since Honeycomb。请务必在使用 API 之前对其进行检查。
  • 它解析为一个常量。在 pre-honeycomb 中,您可以指定常量字符串“android.intent.extra.LOCAL_ONLY”
  • 如何从这个意图中限制外部 sdcard?
【解决方案2】:

使用此代码启动意图以获取本地图像选择器。

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent,
                "Complete action using"), PHOTO_PICKER_ID);

【讨论】:

  • 这会阻止人们从 picasa 相册中进行选择吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 2022-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
相关资源
最近更新 更多