打开filechooser对我来说是个大问题,对于很多其他人来说....有一个完整的解决方案来处理android中的输入类型?上面的代码适用于版本3.0+和4.1 ...不适用于其他版本比4.1更多...试图寻找解决方案但没有成功的几周
// For Android 3.0+
public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MyWb.this.startActivityForResult(
Intent.createChooser(i, "File Browser"),
FILECHOOSER_RESULTCODE);
}
//For Android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
MyWb.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MyWb.FILECHOOSER_RESULTCODE );
}
答案 0 :(得分:0)
以下方法是从文件中选择图像的更常规方法。意图使用onActivityResult()
来检索用户选择的内容。
首先创建意图。
// Creates an Intent to pick a photo
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
然后执行intent:
// ARGS: the intent, a key to access later
startActivityForResult(i, 1);
您现在必须设置onActivityResult(int requestCode, int resultCode, Intent data)
(详细说明here)。
以下是一些示例代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri selectedImage = data.getData();
try {
// Do whatever you want with this bitmap (image)
Bitmap bitmapImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
Log.i("Image Path", selectedImage.getPath());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
将方法直接放入您的班级。您现在可以使用收到的Bitmap
执行任何操作。