monitoringAppUsage method
Future<MonitoringAppUsage>
monitoringAppUsage({
- int startHour = 0,
- int startMinute = 0,
- int endHour = 23,
- int endMinute = 59,
- UsageInterval usageInterval = UsageInterval.daily,
- int lookbackTimeMs = 10000,
- List<
String> ? packagesName,
override
Start monitoring app usage with the specified schedule.
Parameters:
startHour
: The hour to start monitoring (0-23).startMinute
: The minute to start monitoring (0-59).endHour
: The hour to end monitoring (0-23).endMinute
: The minute to end monitoring (0-59).
Returns a map with the following keys:
status
: Whether monitoring was successfully started.monitoringActive
: Whether monitoring is currently active.schedule
: Map containing schedule details (startTime, endTime, frequency).timestamp
: When monitoring was started.error
: Error message if monitoring failed to start.
Implementation
@override
Future<MonitoringAppUsage> monitoringAppUsage({
int startHour = 0,
int startMinute = 0,
int endHour = 23,
int endMinute = 59,
UsageInterval usageInterval = UsageInterval.daily,
int lookbackTimeMs = 10000, // Default: 10 seconds
List<String>? packagesName,
}) async {
final arguments = <Object?, Object?>{
Argument.startHour: startHour,
Argument.startMinute: startMinute,
Argument.endHour: endHour,
Argument.endMinute: endMinute,
Argument.lookbackTimeMs: lookbackTimeMs,
Argument.interval: usageInterval.name,
};
if (packagesName != null) {
arguments[Argument.packagesName] = packagesName;
}
final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
MethodName.monitoringAppUsage, arguments);
final map = await _convertToStringDynamicMap(result);
final response = BaseMonitoringAppUsage.fromJson(map);
return response.data;
}