Ris*_*waj 2 android usage-statistics whatsapp
我一直在寻找一种方法来找出我花在Whatsapp上的时间.我在Playstore上发现了几个应用程序:
https://play.google.com/store/apps/details?id=com.agrvaibhav.AppUsageTracking&hl=en
这些应用程序的大小不到1MB,所以我猜它是一段相当简单的代码,但我找不到任何方法.
所有链接都提供了一种方式让我知道我自己的应用程序使用了多少,或者他们说这可能是隐私侵入[奇异!].
* # * # 7 8 6 # * # *
据说该代码可以正常工作,但每次尝试都会崩溃.
我努力搜索,无法在任何地方找到解决方案.我想到的一种可能的方法是运行跟踪所有打开的应用程序的服务 - 但我不确定这是否可以在Android中使用.
是的,Usage Stats API就是答案.最初苦苦挣扎,但我终于设法做到了.
所需的许可是:
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
Run Code Online (Sandbox Code Playgroud)
获取应用用法的代码:
final UsageStatsManager usageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);// Context.USAGE_STATS_SERVICE);
Calendar beginCal = Calendar.getInstance();
beginCal.set(Calendar.DAY_OF_MONTH, 11);
beginCal.set(Calendar.MONTH, 10);
beginCal.set(Calendar.YEAR, 2015);
Calendar endCal = Calendar.getInstance();
endCal.set(Calendar.DAY_OF_MONTH, 12);
endCal.set(Calendar.MONTH, 10);
endCal.set(Calendar.YEAR, 2015);
final List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginCal.getTimeInMillis(), endCal.getTimeInMillis());
System.out.println("results for " + beginCal.getTime().toGMTString() + " - " + endCal.getTime().toGMTString());
for (UsageStats app : queryUsageStats) {
System.out.println(app.getPackageName() + " | " + (float) (app.getTotalTimeInForeground() / 1000));
}
Run Code Online (Sandbox Code Playgroud)
打开权限使用:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这个问题帮助我们全力以赴.Android网站上更好的文档会有很大帮助.
以下是一些帮助我的链接:
https://github.com/googlesamples/android-AppUsageStatistics