How to modify file selector options in a webview?
up vote
0
down vote
favorite
In my application, I'm using a webview page in which users can select files to upload. It's only showing two options for Camera and Documents. But in google chrome or even other webview applications, there are more options, such as voice recorder.
I'm using WebChromeClient as base for my pages. I used the startActivityOpenChooser before file opener prompt, which I believe this function is all I need to change, if possible.
// openFileChooser for Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooser(uploadMsg, "");
}
...
public void startActivityOpenChooser(String acceptType){
File imageStorageDir = new File(mainActivity.getExternalCacheDir(), "user_upload_files");
if (!imageStorageDir.exists()) {
// Create user_upload_files at sdcard
imageStorageDir.mkdirs();
}
// Create camera captured image file path and name
File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mainActivity.mCapturedImageURI = Uri.fromFile(file);
// Camera capture image intent
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mainActivity.mCapturedImageURI);
Intent i = null;
if (Build.VERSION.SDK_INT < 19) {
i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
} else {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
}
i.setType("*/*");
// Create file chooser intent
Intent chooserIntent = Intent.createChooser(i, mainActivity.getResources().getString(R.string.choose_file_for_upload));
// Set camera intent to file chooser
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable{captureIntent});
// On select image call onActivityResult method of activity
mainActivity.startActivityForResult(chooserIntent, MainActivity.FILECHOOSER_RESULTCODE);
}
Here is an image showing the difference: 
java
add a comment |
up vote
0
down vote
favorite
In my application, I'm using a webview page in which users can select files to upload. It's only showing two options for Camera and Documents. But in google chrome or even other webview applications, there are more options, such as voice recorder.
I'm using WebChromeClient as base for my pages. I used the startActivityOpenChooser before file opener prompt, which I believe this function is all I need to change, if possible.
// openFileChooser for Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooser(uploadMsg, "");
}
...
public void startActivityOpenChooser(String acceptType){
File imageStorageDir = new File(mainActivity.getExternalCacheDir(), "user_upload_files");
if (!imageStorageDir.exists()) {
// Create user_upload_files at sdcard
imageStorageDir.mkdirs();
}
// Create camera captured image file path and name
File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mainActivity.mCapturedImageURI = Uri.fromFile(file);
// Camera capture image intent
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mainActivity.mCapturedImageURI);
Intent i = null;
if (Build.VERSION.SDK_INT < 19) {
i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
} else {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
}
i.setType("*/*");
// Create file chooser intent
Intent chooserIntent = Intent.createChooser(i, mainActivity.getResources().getString(R.string.choose_file_for_upload));
// Set camera intent to file chooser
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable{captureIntent});
// On select image call onActivityResult method of activity
mainActivity.startActivityForResult(chooserIntent, MainActivity.FILECHOOSER_RESULTCODE);
}
Here is an image showing the difference: 
java
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
In my application, I'm using a webview page in which users can select files to upload. It's only showing two options for Camera and Documents. But in google chrome or even other webview applications, there are more options, such as voice recorder.
I'm using WebChromeClient as base for my pages. I used the startActivityOpenChooser before file opener prompt, which I believe this function is all I need to change, if possible.
// openFileChooser for Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooser(uploadMsg, "");
}
...
public void startActivityOpenChooser(String acceptType){
File imageStorageDir = new File(mainActivity.getExternalCacheDir(), "user_upload_files");
if (!imageStorageDir.exists()) {
// Create user_upload_files at sdcard
imageStorageDir.mkdirs();
}
// Create camera captured image file path and name
File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mainActivity.mCapturedImageURI = Uri.fromFile(file);
// Camera capture image intent
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mainActivity.mCapturedImageURI);
Intent i = null;
if (Build.VERSION.SDK_INT < 19) {
i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
} else {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
}
i.setType("*/*");
// Create file chooser intent
Intent chooserIntent = Intent.createChooser(i, mainActivity.getResources().getString(R.string.choose_file_for_upload));
// Set camera intent to file chooser
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable{captureIntent});
// On select image call onActivityResult method of activity
mainActivity.startActivityForResult(chooserIntent, MainActivity.FILECHOOSER_RESULTCODE);
}
Here is an image showing the difference: 
java
In my application, I'm using a webview page in which users can select files to upload. It's only showing two options for Camera and Documents. But in google chrome or even other webview applications, there are more options, such as voice recorder.
I'm using WebChromeClient as base for my pages. I used the startActivityOpenChooser before file opener prompt, which I believe this function is all I need to change, if possible.
// openFileChooser for Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooser(uploadMsg, "");
}
...
public void startActivityOpenChooser(String acceptType){
File imageStorageDir = new File(mainActivity.getExternalCacheDir(), "user_upload_files");
if (!imageStorageDir.exists()) {
// Create user_upload_files at sdcard
imageStorageDir.mkdirs();
}
// Create camera captured image file path and name
File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mainActivity.mCapturedImageURI = Uri.fromFile(file);
// Camera capture image intent
final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mainActivity.mCapturedImageURI);
Intent i = null;
if (Build.VERSION.SDK_INT < 19) {
i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
} else {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
}
i.setType("*/*");
// Create file chooser intent
Intent chooserIntent = Intent.createChooser(i, mainActivity.getResources().getString(R.string.choose_file_for_upload));
// Set camera intent to file chooser
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable{captureIntent});
// On select image call onActivityResult method of activity
mainActivity.startActivityForResult(chooserIntent, MainActivity.FILECHOOSER_RESULTCODE);
}
Here is an image showing the difference: 
java
java
edited yesterday
Kling Klang
32k156286
32k156286
asked yesterday
ananda
4571929
4571929
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238008%2fhow-to-modify-file-selector-options-in-a-webview%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password