【问题标题】:Want Open exactly the Gallery in Android想要在 Android 中准确打开图库
【发布时间】:2014-06-10 06:31:09
【问题描述】:

我想在 Android 设备中打开默认图库,但是当我使用以下代码时,如果用户偏好,它会打开“照片”。

我使用的代码,

Intent in = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
in.putExtra("crop", "true");
startActivityForResult(in, RESULT_LOAD_IMAGE);

【问题讨论】:

  • 是的,我也有这样的问题,如何避免将来自云的图像附加到应用程序...

标签: android gallery


【解决方案1】:

您应该必须使用此代码。

通过这个你可以切换到图库。

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("content://media/internal/images/media"));
startActivity(intent);

【讨论】:

    【解决方案2】:

    我认为 setPackage(String packageName) 完成你的任务。


    例子

    Intent in = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    in.putExtra("crop", "true");
    in.setPackage(PACKAGE_NAME_OF_GALLERY); // Make sure if it is com.android.gallery3d
    startActivityForResult(in, RESULT_LOAD_IMAGE);
    

    【讨论】:

    • 崩溃,android.content.ActivityNotFoundException:没有找到处理 Intent 的 Activity { act=android.intent.action.PICK dat=content://media/external/images/media pkg=com.android .gallery3d(有附加功能)}
    • 您需要确定如何将图像传递到应用程序库进行裁剪。其他看stackoverflow.com/questions/17930577/…
    【解决方案3】:

    您可以按照我在下面使用的类似方式进行操作。您必须手动设置Class Name。这可能不适用于旧设备和未来的设备。类名肯定会改变。

    我认为他们会在某个时候摆脱图库应用程序而只使用照片。

    in.setClassName("com.android.gallery3d", "com.android.gallery3d.app.Gallery");
    if(isAvailable(context, in)) {
        //Open it. 
    }
    else {
        //Do it the old way
    }
    

    isAvailable 函数是

    public static boolean isAvailable(Context ctx, Intent intent) {
        if(ctx == null)
            return false;
       final PackageManager mgr = ctx.getPackageManager();
       List<ResolveInfo> list =
          mgr.queryIntentActivities(intent, 
             PackageManager.MATCH_DEFAULT_ONLY);
       return list.size() > 0;
    }
    

    【讨论】:

      【解决方案4】:

      您可以使用以下内容:

      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/internal/images/media")); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
      startActivity(intent);
      

      【讨论】:

      • 我要选择,它不适用于 ACTION_PICK。因为我们无法获得路径
      • 这段代码完全打开了包括照片和视频在内的完整图库,我对其进行了测试。你到底在找什么?请详细说明。
      • 从照片中选择时无法裁剪
      猜你喜欢
      • 2019-12-15
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多