Flutter -有没有一种方法可以通过应用程序使手机静音?

vc6uscn9  于 2023-04-22  发布在  Flutter
关注(0)|答案(2)|浏览(306)

我从Flutter开始,目前正在做一个项目,如果你在一个指定的位置,它可以让手机静音。我已经实现了谷歌Map等。除了标记不可见之外,一切都正常,但这是另一个问题。我的问题是如何用一个应用程序让手机静音。我在任何地方都没有找到解决方案。

pqwbnv8z

pqwbnv8z1#

我真的很怀疑Flutter是否提供了这样一个开箱即用的功能。我建议搜索第三方软件包。如果失败了,你可以在每个平台上使用Platform Channels原生实现这个功能。
在这里,你可以找到如何在Android上实现这一点,以及HERE如何在IOS上实现这一点。

svdrlsy4

svdrlsy42#

有两个插件可供使用

1.sound_modehttps://pub.dev/packages/sound_mode
特点

  • 检测设备的当前声音模式(IOS & Android)
  • 能够切换正常,静音和振动模式(仅限Android)
  • 为平台版本Android 6.0(API 23)以上的设备授予免打扰权限(仅限Android)

1.flutter_mutehttps://pub.dev/packages/flutter_mute
特点

  • 检测设备当前振铃模式
  • 能够切换正常,静音和振动模式(仅适用于Android)
  • 为平台版本Android 7.0(API 24)以上的设备授予通知策略访问权限

两个Pulgins都可以切换您的Android基础设备(不是IOS设备)
示例(Android),

import 'package:sound_mode/utils/ringer_mode_statuses.dart';

// Handle Platform Exceptions for devices running above Android 6.0 
try {
  await SoundMode.setSoundMode(RingerModeStatus.silent);
} on PlatformException {
  print('Please enable permissions required');
}

实施例(ISO):

RingerModeStatus ringerStatus = RingerModeStatus.unknown;

// The one second delay is needed to get accurate results on IOS...
Future.delayed(const Duration(seconds: 1), () async {
  try {
    ringerStatus = await SoundMode.ringerModeStatus;
  } catch (err) {
    ringerStatus = RingerModeStatus.unknown;
  }
  print(ringerStatus);
});

相关问题