Intent.ACTION_PICK的行为有所不同

cas*_*las 0 android android-gallery

我正在使用以下代码从图库中选择图像。当我使用Samsung Galaxy S4对其进行测试时,它会直接转到我真正想要的Gallery。

但是,当我在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);
}
Run Code Online (Sandbox Code Playgroud)

Com*_*are 5

当我在LG Optimus II设备上测试代码时,它显示一个对话框,提供选择图库或图片的选项

这是因为有一些设备上的两个活动的支持ACTION_PICKimage/*文件。此类活动可能为零到N,具体取决于设备上的应用程序。这将包括预安装的应用程序和用户自行安装的应用程序。这些范围从本地文件管理器到通用云提供商(例如Dropbox)再到图像特定的应用程序(例如Instagram)。

换句话说,它增加了我不想要的另一层。

然后不要使用ACTION_PICK。您正在委派给第三方应用程序;用户要使用哪个第三方应用程序,取决于用户,而不是您。