usage_stats 0.1.0
usage_stats: ^0.1.0 copied to clipboard
Query Android Usage Statistics (Configurations, Events, Usage)
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:usage_stats/usage_stats.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<EventUsageInfo> events;
@override
void initState() {
super.initState();
initUsage();
}
Future<void> initUsage() async {
UsageStats.grantUsagePermission();
DateTime endDate = new DateTime.now();
DateTime startDate = DateTime(endDate.year, endDate.month, 29, 0, 0, 0);
List<EventUsageInfo> queryEvents =
await UsageStats.queryEvents(startDate, endDate);
this.setState(() {
events = queryEvents.reversed.toList();
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text("Usage Stats"),
),
body: Container(
child: ListView.separated(
itemBuilder: (context, index) {
return ListTile(
title: Text(events[index].packageName),
subtitle: Text(
"Last time used: ${DateTime.fromMillisecondsSinceEpoch(int.parse(events[index].timeStamp)).toIso8601String()}"),
trailing: Text(events[index].eventType),
);
},
separatorBuilder: (context, index) => Divider(),
itemCount: events.length)),
floatingActionButton: FloatingActionButton(
onPressed: () {
initUsage();
},
child: Icon(
Icons.refresh,
),
mini: true,
),
),
);
}
}