启动图库直接选择图像

时间:2014-04-30 02:17:55

标签: android android-gallery

有没有办法直接启动画廊?

目前:

Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, SOME_CONSTANT);

这会提示用户输入应用,但我想跳过此步骤。

1 个答案:

答案 0 :(得分:0)

您需要先获取Gallery package名称和主Activity班级名称。

Intent mainIntent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

查询支持的应用程序以选择图像

List<ResolveInfo> apps = getPackageManager().queryIntentActivities(mainIntent, 0);

现在,从ActivityInfo

中检索包名称
  for (ResolveInfo info :apps) {
        String packageName = info.activityInfo.applicationInfo.packageName;
        String activityName = info.activityInfo.name;
        if(packageName.contains("gallery")){
            // gallery intent
            Intent galleryIntent = new Intent(Intent.ACTION_PICK);
            galleryIntent.setClassName(packageName,activityName);
            // start the gallery Activity
            startActivityForResult(galleryIntent, PICTURE_REQUEST_CODE);
            break;
        }
    }

注意:硬编码包名称为图库不正确的方法,如果包名称在以后的Android版本中更改,这将无法正常工作。但是当前的android版本的包名称为gallery。