WebChromeClient.FileChooserParams
public
static
abstract
class
WebChromeClient.FileChooserParams
extends Object
java.lang.Object | |
↳ | android.webkit.WebChromeClient.FileChooserParams |
Parameters used in the WebChromeClient.onShowFileChooser(WebView, ValueCallback, FileChooserParams)
method.
Summary
Constants | |
---|---|
int |
MODE_OPEN
Open single file. |
int |
MODE_OPEN_MULTIPLE
Like Open but allows multiple files to be selected. |
int |
MODE_SAVE
Allows picking a nonexistent file and saving it. |
Public constructors | |
---|---|
FileChooserParams()
|
Public methods | |
---|---|
abstract
Intent
|
createIntent()
Creates an intent that would start a file picker for file selection. |
abstract
String[]
|
getAcceptTypes()
Returns an array of acceptable MIME types. |
abstract
String
|
getFilenameHint()
The file name of a default selection if specified, or |
abstract
int
|
getMode()
Returns file chooser mode. |
abstract
CharSequence
|
getTitle()
Returns the title to use for this file selector. |
abstract
boolean
|
isCaptureEnabled()
Returns preference for a live media captured value (e.g. Camera, Microphone). |
static
Uri[]
|
parseResult(int resultCode, Intent data)
Parse the result returned by the file picker activity. |
Inherited methods | |
---|---|
Constants
MODE_OPEN
public static final int MODE_OPEN
Open single file. Requires that the file exists before allowing the user to pick it.
Constant Value: 0 (0x00000000)
MODE_OPEN_MULTIPLE
public static final int MODE_OPEN_MULTIPLE
Like Open but allows multiple files to be selected.
Constant Value: 1 (0x00000001)
MODE_SAVE
public static final int MODE_SAVE
Allows picking a nonexistent file and saving it.
Constant Value: 3 (0x00000003)
Public constructors
FileChooserParams
public FileChooserParams ()
Public methods
createIntent
public abstract Intent createIntent ()
Creates an intent that would start a file picker for file selection. The Intent supports choosing files from simple file sources available on the device. Some advanced sources (for example, live media capture) may not be supported and applications wishing to support these sources or more advanced file operations should build their own Intent.
How to use:
- Build an intent using
createIntent()
- Fire the intent using
Activity.startActivityForResult(Intent, int)
. - Check for ActivityNotFoundException and take a user friendly action if thrown.
- Listen the result using
Activity.onActivityResult(int, int, Intent)
- Parse the result using
parseResult(int, Intent)
only if media capture was not requested. - Send the result using filePathCallback of
WebChromeClient.onShowFileChooser(WebView, ValueCallback, FileChooserParams)
Note: The created intent may be handled by
third-party applications on device. The received result must be treated
as untrusted as it can contain Uris pointing to your own app's sensitive
data files. Your app should check the resultant Uris in parseResult(int, Intent)
before calling the filePathCallback
.
Returns | |
---|---|
Intent |
an Intent that supports basic file chooser sources. |
getAcceptTypes
public abstract String[] getAcceptTypes ()
Returns an array of acceptable MIME types. The returned MIME type could be partial such as audio/*. The array will be empty if no acceptable types are specified.
Returns | |
---|---|
String[] |
getFilenameHint
public abstract String getFilenameHint ()
The file name of a default selection if specified, or null
.
Returns | |
---|---|
String |
getTitle
public abstract CharSequence getTitle ()
Returns the title to use for this file selector. If null
a default title should
be used.
Returns | |
---|---|
CharSequence |
isCaptureEnabled
public abstract boolean isCaptureEnabled ()
Returns preference for a live media captured value (e.g. Camera, Microphone).
True indicates capture is enabled, false
disabled.
Use getAcceptTypes
to determine suitable capture devices.
Returns | |
---|---|
boolean |
parseResult
public static Uri[] parseResult (int resultCode, Intent data)
Parse the result returned by the file picker activity. This method should be used with
createIntent()
. Refer to createIntent()
for how to use it.
Note: The intent returned by the file picker activity
should be treated as untrusted. A third-party app handling the implicit
intent created by createIntent()
might return Uris that the third-party
app itself does not have access to, such as your own app's sensitive data files.
WebView does not enforce any restrictions on the returned Uris. It is the
app's responsibility to ensure that the untrusted source (such as a third-party
app) has access the Uris it has returned and that the Uris are not pointing
to any sensitive data files.
Parameters | |
---|---|
resultCode |
int : the integer result code returned by the file picker activity. |
data |
Intent : the intent returned by the file picker activity. |
Returns | |
---|---|
Uri[] |
the Uris of selected file(s) or null if the resultCode indicates
activity canceled or any other error. |