Intent.ACTION_PICK 表现不同
Intent.ACTION_PICK behaves differently
我正在使用以下代码从图库中挑选图像。当我使用 Samsung Galaxy S4 对其进行测试时,它会直接转到我真正想要的图库。
但是,当我在 LG Optimus II 设备上测试我的代码时,它显示了一个对话框,提供了选择图库或图片的选项。换句话说,它增加了一层我不想要的。
这两款设备均采用 KitKat 4.4.2 操作系统。
public static void showFileChooser(Activity activity) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);
}
如果你想要图库,那么
Intent pickImageIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
请api19岁以上
使用
if (Build.VERSION.SDK_INT < 19) {
Intent intent = new Intent();
intent.setType("image/jpeg");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select image to promote"),
GALLERY_INTENT_CALLED);
} else {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/jpeg");
startActivityForResult(intent,
GALLERY_KITKAT_INTENT_CALLED);
}
when I test my code on LG Optimus II device, it shows a dialog gives an option to choose either Gallery or Picture
那是因为该设备上有两个活动支持 ACTION_PICK
个 image/*
个文件。可能有零到 N 个这样的活动,具体取决于设备上的应用程序。这将包括预安装的应用程序和用户自己安装的应用程序。这些范围从本地文件管理器到通用云提供商(例如 Dropbox)再到特定于图像的应用程序(例如 Instagram)。
In other words, it adds one more layer which I do not want.
那就不要用ACTION_PICK
。您正在委托给第三方应用程序;用户希望使用哪种第三方应用取决于用户,而不是您。
我正在使用以下代码从图库中挑选图像。当我使用 Samsung Galaxy S4 对其进行测试时,它会直接转到我真正想要的图库。
但是,当我在 LG Optimus II 设备上测试我的代码时,它显示了一个对话框,提供了选择图库或图片的选项。换句话说,它增加了一层我不想要的。
这两款设备均采用 KitKat 4.4.2 操作系统。
public static void showFileChooser(Activity activity) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);
}
如果你想要图库,那么
Intent pickImageIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
请api19岁以上
使用if (Build.VERSION.SDK_INT < 19) {
Intent intent = new Intent();
intent.setType("image/jpeg");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select image to promote"),
GALLERY_INTENT_CALLED);
} else {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/jpeg");
startActivityForResult(intent,
GALLERY_KITKAT_INTENT_CALLED);
}
when I test my code on LG Optimus II device, it shows a dialog gives an option to choose either Gallery or Picture
那是因为该设备上有两个活动支持 ACTION_PICK
个 image/*
个文件。可能有零到 N 个这样的活动,具体取决于设备上的应用程序。这将包括预安装的应用程序和用户自己安装的应用程序。这些范围从本地文件管理器到通用云提供商(例如 Dropbox)再到特定于图像的应用程序(例如 Instagram)。
In other words, it adds one more layer which I do not want.
那就不要用ACTION_PICK
。您正在委托给第三方应用程序;用户希望使用哪种第三方应用取决于用户,而不是您。