sound_mode 2.0.0 sound_mode: ^2.0.0 copied to clipboard
A plugin to manage a device's sound mode for android. This plugin also supports requesting the required permissions to modify the device's sound mode for Android API 24 and above.
sound_mode #
You can get the sound mode status on IOS & Android! On Android you can also manage the device's sound mode.
Android Usage #
Add sound_mode
as a dependency in your pubspec.yaml file
Add the following permission to AndroidManifest.xml
for the app to appear in the 'Do Not Disturb Access' list
<manifest ... >
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<application ... >
...
</manifest>
Features #
- Detect device's current sound mode
- Able to toggle between Normal, Silent & Vibrate mode
- Grant Do No Disturb permissions for devices above platform version
Android 6.0 (API 23)
Example #
To get the device's current sound mode:
String ringerStatus = await SoundMode.ringerModeStatus;
print(ringerStatus);
To change the device's sound mode:
import 'package:sound_mode/utils/sound_profiles.dart';
// Handle Platform Exceptions for devices running above Android 6.0
try {
await SoundMode.setSoundMode(Profiles.SILENT);
} on PlatformException {
print('Please enable permissions required');
}
List of modes available
Mode | Description |
---|---|
RingerModeStatus.normal | Sets the device to normal mode |
RingerModeStatus.silent | Sets the device to silent mode |
RingerModeStatus.vibrate | Sets the device to vibrate mode |
For Android 6.0 and above
For devices with Android 6.0 and above, it is required for the user to grant Do No Disturb Access to set their device's sound mode.
To check if the user has granted the permissions and prompt for approval
import 'package:sound_mode/permission_handler.dart';
bool isGranted = await PermissionHandler.permissionsGranted;
if (!isGranted) {
// Opens the Do Not Disturb Access settings to grant the access
await PermissionHandler.openDoNotDisturbSetting();
}
iOS Usage #
Currently, it is possible to get the device's ringer mode status. For iOS, the following lines of code can be added to use it in flutter
ringerStatus = await SoundMode.ringerModeStatus;
List of ringerModeStatus statuses #
Status | Description |
---|---|
RingerModeStatus.unknown | Don't know the status |
RingerModeStatus.normal | Device is in normal mode |
RingerModeStatus.silent | Device is in silent mode |
RingerModeStatus.vibrate | Device is in vibrate mode |
Contributing #
Feel free to edit the plugin and submit a pull request or open an issue on github to leave a feedback