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 null.

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

Added in API level 21
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

Added in API level 21
public static final int MODE_OPEN_MULTIPLE

Like Open but allows multiple files to be selected.

Constant Value: 1 (0x00000001)

MODE_SAVE

Added in API level 21
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

Added in API level 21
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:

  1. Build an intent using createIntent()
  2. Fire the intent using Activity.startActivityForResult(Intent, int).
  3. Check for ActivityNotFoundException and take a user friendly action if thrown.
  4. Listen the result using Activity.onActivityResult(int, int, Intent)
  5. Parse the result using parseResult(int, Intent) only if media capture was not requested.
  6. 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

Added in API level 21
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

Added in API level 21
public abstract String getFilenameHint ()

The file name of a default selection if specified, or null.

Returns
String

getMode

Added in API level 21
public abstract int getMode ()

Returns file chooser mode.

Returns
int

getTitle

Added in API level 21
public abstract CharSequence getTitle ()

Returns the title to use for this file selector. If null a default title should be used.

Returns
CharSequence

isCaptureEnabled

Added in API level 21
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

Added in API level 21
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.