Package io.flutter.embedding.engine.systemchannels

# Interface PlatformChannel.PlatformMessageHandler

Enclosing class:
  `PlatformChannel`

public static interface PlatformChannel.PlatformMessageHandler
Handler that receives platform messages sent from Flutter to Android through a given `PlatformChannel`.

To register a `PlatformMessageHandler` with a `PlatformChannel`, see `PlatformChannel.setPlatformMessageHandler(PlatformMessageHandler)`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `clipboardHasStrings()`
  The Flutter application would like to know if the clipboard currently contains a string that can be pasted.
  `CharSequence`
  `getClipboardData(PlatformChannel.ClipboardContentFormat format)`
  The Flutter application would like to receive the current data in the clipboard and have it returned in the given `format`.
  `void`
  `playSystemSound(PlatformChannel.SoundType soundType)`
  The Flutter application would like to play the given `soundType`.
  `void`
  `popSystemNavigator()`
  The Flutter application would like to pop the top item off of the Android app's navigation back stack.
  `void`
  `restoreSystemUiOverlays()`
  The Flutter application would like to restore the visibility of system overlays to the last set of overlays sent via `showSystemOverlays(List)` or `showSystemUiMode(SystemUiMode)`.
  `void`
  `setApplicationSwitcherDescription(PlatformChannel.AppSwitcherDescription description)`
  The Flutter application would like to be displayed in Android's app switcher with the visual representation described in the given `description`.
  `void`
  `setClipboardData(String text)`
  The Flutter application would like to set the current data in the clipboard to the given `text`.
  `default void`
  `setFrameworkHandlesBack(boolean frameworkHandlesBack)`
  The Flutter application would or would not like to handle navigation pop events itself.
  `void`
  `setPreferredOrientations(int androidOrientation)`
  The Flutter application would like to display in the given `androidOrientation`.
  `void`
  `setSystemUiChangeListener()`
  The Flutter application would like the Android system to notify the framework when the system ui visibility has changed.
  `void`
  `setSystemUiOverlayStyle(PlatformChannel.SystemChromeStyle systemUiOverlayStyle)`
  The Flutter application would like the system chrome to present itself with the given `systemUiOverlayStyle`, i.e., the given status bar and navigation bar colors and brightness.
  `void`
  `share(String text)`
  The Flutter application would like to share the given `text` using the Android standard intent action named `Intent.ACTION_SEND`.
  `void`
  `showSystemOverlays(List<PlatformChannel.SystemUiOverlay> overlays)`
  The Flutter application would like the Android system to display the given `overlays`.
  `void`
  `showSystemUiMode(PlatformChannel.SystemUiMode mode)`
  The Flutter application would like the Android system to display the given `mode`.
  `void`
  `vibrateHapticFeedback(PlatformChannel.HapticFeedbackType feedbackType)`
  The Flutter application would like to play the given haptic `feedbackType`.

- ## Method Details

  - ### playSystemSound

    void playSystemSound(@NonNull PlatformChannel.SoundType soundType)
    The Flutter application would like to play the given `soundType`.

  - ### vibrateHapticFeedback

    void vibrateHapticFeedback(@NonNull PlatformChannel.HapticFeedbackType feedbackType)
    The Flutter application would like to play the given haptic `feedbackType`.

  - ### setPreferredOrientations

    void setPreferredOrientations(int androidOrientation)
    The Flutter application would like to display in the given `androidOrientation`.

  - ### setApplicationSwitcherDescription

    void setApplicationSwitcherDescription(@NonNull PlatformChannel.AppSwitcherDescription description)
    The Flutter application would like to be displayed in Android's app switcher with the visual representation described in the given `description`.

    See the related Android documentation: https://developer.android.com/guide/components/activities/recents

  - ### showSystemOverlays

    void showSystemOverlays(@NonNull List<PlatformChannel.SystemUiOverlay> overlays)
    The Flutter application would like the Android system to display the given `overlays`.

    `PlatformChannel.SystemUiOverlay.TOP_OVERLAYS` refers to system overlays such as the status bar, while `PlatformChannel.SystemUiOverlay.BOTTOM_OVERLAYS` refers to system overlays such as the back/home/recents navigation on the bottom of the screen.

    An empty list of `overlays` should hide all system overlays.

  - ### showSystemUiMode

    void showSystemUiMode(@NonNull PlatformChannel.SystemUiMode mode)
    The Flutter application would like the Android system to display the given `mode`.

    `PlatformChannel.SystemUiMode.LEAN_BACK` refers to a fullscreen experience that restores system bars upon tapping anywhere in the application. This tap gesture is not received by the application.

    `PlatformChannel.SystemUiMode.IMMERSIVE` refers to a fullscreen experience that restores system bars upon swiping from the edge of the viewport. This swipe gesture is not recived by the application.

    `PlatformChannel.SystemUiMode.IMMERSIVE_STICKY` refers to a fullscreen experience that restores system bars upon swiping from the edge of the viewport. This swipe gesture is received by the application, in contrast to `PlatformChannel.SystemUiMode.IMMERSIVE`.

    `PlatformChannel.SystemUiMode.EDGE_TO_EDGE` refers to a layout configuration that will consume the full viewport. This full screen experience does not hide status bars. These status bars can be set to transparent, making the buttons and icons hover over the fullscreen application.

  - ### setSystemUiChangeListener

    void setSystemUiChangeListener()
    The Flutter application would like the Android system to notify the framework when the system ui visibility has changed.

    This is relevant when using `PlatformChannel.SystemUiMode`s for fullscreen applications, from which the system overlays can appear or disappear based on user input.

  - ### restoreSystemUiOverlays

    void restoreSystemUiOverlays()
    The Flutter application would like to restore the visibility of system overlays to the last set of overlays sent via `showSystemOverlays(List)` or `showSystemUiMode(SystemUiMode)`.

    If `showSystemOverlays(List)` or `showSystemUiMode(SystemUiMode)` has yet to be called, then a default system overlay appearance is desired:

    `View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN`

  - ### setSystemUiOverlayStyle

    void setSystemUiOverlayStyle(@NonNull PlatformChannel.SystemChromeStyle systemUiOverlayStyle)
    The Flutter application would like the system chrome to present itself with the given `systemUiOverlayStyle`, i.e., the given status bar and navigation bar colors and brightness.

  - ### setFrameworkHandlesBack

    default void setFrameworkHandlesBack(boolean frameworkHandlesBack)
    The Flutter application would or would not like to handle navigation pop events itself.

    Relevant for registering and unregistering the app's OnBackInvokedCallback for the Predictive Back feature, for example as in `FlutterActivity`.

  - ### popSystemNavigator

    void popSystemNavigator()
    The Flutter application would like to pop the top item off of the Android app's navigation back stack.

  - ### getClipboardData

    @Nullable CharSequence getClipboardData(@Nullable PlatformChannel.ClipboardContentFormat format)
    The Flutter application would like to receive the current data in the clipboard and have it returned in the given `format`.

  - ### setClipboardData

    void setClipboardData(@NonNull String text)
    The Flutter application would like to set the current data in the clipboard to the given `text`.

  - ### clipboardHasStrings

    boolean clipboardHasStrings()
    The Flutter application would like to know if the clipboard currently contains a string that can be pasted.

  - ### share

    void share(@NonNull String text)
    The Flutter application would like to share the given `text` using the Android standard intent action named `Intent.ACTION_SEND`. See: https://developer.android.com/reference/android/content/Intent.html#ACTION_SEND