Created
October 7, 2017 08:05
-
-
Save ardianta/f82de1b7a7811b2ebc707dcea7a2391a to your computer and use it in GitHub Desktop.
Android Choose Action
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//The undocumented magic method override | |
//Eclipse will swear at you if you try to put @Override here | |
// For Android 3.0+ | |
public void openFileChooser(ValueCallback<Uri> uploadMsg) { | |
mUploadMessage = uploadMsg; | |
Intent i = new Intent(Intent.ACTION_GET_CONTENT); | |
i.addCategory(Intent.CATEGORY_OPENABLE); | |
i.setType("image/*"); | |
startActivityForResult(Intent.createChooser(i, "File Chooser"), | |
RESULT_CODE_ICE_CREAM); | |
} | |
// 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("*/*"); | |
startActivityForResult(Intent.createChooser(i, "File Browser"), | |
RESULT_CODE_ICE_CREAM); | |
} | |
//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/*"); | |
startActivityForResult(Intent.createChooser(i, "File Chooser"), | |
RESULT_CODE_ICE_CREAM); | |
} | |
//For Android5.0+ | |
public boolean onShowFileChooser( | |
WebView webView, ValueCallback<Uri[]> filePathCallback, | |
FileChooserParams fileChooserParams) { | |
if (mFilePathCallback != null) { | |
mFilePathCallback.onReceiveValue(null); | |
} | |
mFilePathCallback = filePathCallback; | |
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); | |
if (takePictureIntent.resolveActivity(getPackageManager()) != null) { | |
// Create the File where the photo should go | |
File photoFile = null; | |
try { | |
photoFile = createImageFile(); | |
takePictureIntent.putExtra("PhotoPath", mCameraPhotoPath); | |
} catch (IOException ex) { | |
// Error occurred while creating the File | |
Log.e("MainActivity", "Unable to create Image File", ex); | |
} | |
// Continue only if the File was successfully created | |
if (photoFile != null) { | |
mCameraPhotoPath = "file:" + photoFile.getAbsolutePath(); | |
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, | |
Uri.fromFile(photoFile)); | |
} else { | |
takePictureIntent = null; | |
} | |
} | |
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT); | |
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE); | |
contentSelectionIntent.setType("image/*"); | |
Intent[] intentArray; | |
if (takePictureIntent != null) { | |
intentArray = new Intent[]{takePictureIntent}; | |
} else { | |
intentArray = new Intent[0]; | |
} | |
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER); | |
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent); | |
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser"); | |
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); | |
startActivityForResult(chooserIntent, REQUEST_CODE_LOLIPOP); | |
return true; | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment