Repository: flutter
Issue: On Android, KeyboardListener catches software keyboard input.
Labels: a: text input,platform-android,framework,P3,team-text-input,triaged-text-input

### Steps to reproduce

Our app has a function that operates by distinguishing between hardware (bluetooth) keyboard input and software keyboard input for `TextField`.
While searching for the API provided by Flutter to implement this, I came across the `KeyboardListener` widget description below.
```
/// ..in keyboard_listener.dart
/// A [KeyboardListener] is useful for listening to key events and
/// hardware buttons that are represented as keys. Typically used by games and
/// other apps that use keyboards for purposes other than text entry.

/// ..in hardware_keyboard.dart
/// The [KeyEvent] provides a universal model for key event information from a
/// hardware keyboard across platforms.
```
From the above explanation, I understood that KeyboardListener only recognizes hardware keys.

We applied this to our project because we thought it suited our requirements, but the actual behavior was different from what we expected.

In fact, when we run the app with the code below using KeyboardListenerd, the backspace (if there is no string to delete) and enter (textfield property - textInputAction: newline) keys entered on the software keyboard are detected as if backspace or enter were pressed on the hardware keyboard.
Additionally, we were unable to determine whether the input was software or hardware from the detected results.

Does this mean I misunderstood the document? or is this not the widget provided with this intention?
I'm not sure if this is a bug, but if this is the intended result, it would be helpful if the documentation for KeyboardListener or KeyEvent was a bit nicer.
Also, if there is a way to implement the above requirements, please kindly let me know.

(I tested it on Samsung Keyboard and GBoard, and the results were different. I used a Korean/English keyboard, and it was also different when I typed in Korean and English. - test os: android - )

### Expected results

Key input from the software keyboard is not detected in the Keyboardlistener onKeyEvent.

### Actual results

Depending on the keyboard type / input language / key type, onKeyEvent is called for some software keyboard inputs.

### Code sample

```dart
class Home extends StatefulWidget {
  const Home({super.key});

  @override
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  final FocusNode focusNode = FocusNode();

  @override
  void dispose() {
    focusNode.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("keyboard listener")),
      body: Column(crossAxisAlignment: CrossAxisAlignment.center, children: [
        KeyboardListener(
          focusNode: focusNode,
          onKeyEvent: print,
          child: const TextField(textInputAction: TextInputAction.newline),
        ),
      ]),
    );
  }
}
```

### Screenshots or Video

<details open>
<summary>Screenshots / Video demonstration</summary>

[Upload media here]

</details>


### Logs

<details open><summary>Logs</summary>

```console
[Paste your logs here]
```

</details>


### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
[Paste your output here]
```

</details>