getScreenTimeData method

Future<String> getScreenTimeData()

Ekran süresi verilerini getirir

Implementation

Future<String> getScreenTimeData() async {
  try {
    if (!Platform.isIOS) {
      return 'Bu özellik sadece iOS cihazlarda kullanılabilir.';
    }

    final now = DateTime.now();
    final oneWeekAgo = now.subtract(const Duration(days: 7));

    final Map<String, dynamic>? usageData =
        await _channel.invokeMapMethod<String, dynamic>(
      'getScreenTimeData',
      {
        'startDate': oneWeekAgo.millisecondsSinceEpoch,
        'endDate': now.millisecondsSinceEpoch,
      },
    );

    if (usageData != null && usageData.isNotEmpty) {
      final buffer = StringBuffer();
      buffer.writeln('Başlangıç: ${oneWeekAgo.toString()}');
      buffer.writeln('Bitiş: ${now.toString()}\n');

      usageData.forEach((app, duration) {
        final hours = (duration as int) ~/ 3600;
        final minutes = ((duration as int) % 3600) ~/ 60;
        buffer.writeln('$app: ${hours}s ${minutes}dk');
      });

      return buffer.toString();
    }
    return 'Kullanım verisi bulunamadı.';
  } catch (e) {
    return 'Hata oluştu: $e';
  }
}