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;
}