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

标签 android flutter

我想得到这个:听硬件键(例如音量键)但阻止它默认行为(例如我按音量键>我的应用程序对此使用react>但音量应该而不是改变)。
这在 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"),
    ),);
  }
}

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

最佳答案

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

关于android - Flutter - 监听硬件按键。防止默认行为,android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53667704/

相关文章:

java - 如何在我的 flutter android 应用程序中添加 .aar 文件作为包?

android - 当收到电子邮件时,如何让 Android 上的应用程序自动启动?

android - ImageView 正在调整大小,同时在其上绘制边框形状

android - 使用 Retrofit 发送带有参数的 Post 请求

android - Flutter/App开发初学者求智慧,大方向

flutter - 如果指定了home属性,则路由表不能包含/的条目

android - 在 Flutter 项目中获取 iOS 和 Android 的 AdMob 测试设备 ID

java - 删除未使用的文件后,Drawables 链接失败

java - picasso 未加载图像

dart - 如何在使用 canvas.drawLine() 打印多行时添加时间延迟