Flutter - 监听硬件按键。防止默认行为,android

Mar*_*ubi 5 android flutter

我希望得到这样的:(前音量键)听HW密钥,但阻止其默认行为(当然我按音量键>我的应用程序反应是>,但音量应该没有变化)。这在 Java android 中很容易,但我无法在 FLutter 中停止此事件。这是演示代码:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' as serv;

void main() => runApp(MaterialApp(home: MyApp()));



class MyApp extends StatelessWidget {

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    serv.RawKeyboard.instance.addListener((serv.RawKeyEvent k){
      print(k);
    });
    return Scaffold(body: SafeArea(
      child: Text("TEST"),
    ),);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我按下音量按钮时,音量也会改变。如何阻止这个?

Koz*_*ubi 0

好的,我找到了一个解决方案 https://api.flutter.dev/flutter/widgets/Shortcuts-class.html 有一个小部件Shortcuts,并且Actions是通过硬件键发送的 Intent 的消费者。