以下代码在版本6.0之前工作正常
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager mUsageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
long currentTime = System.currentTimeMillis();
List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, currentTime - 100 * 1000, currentTime);
if(stats != null) {
long lastUsedAppTime = 0;
for (UsageStats usageStats : stats) {
if (usageStats.getLastTimeUsed() > lastUsedAppTime) {
String foregroundApp = usageStats.getPackageName();
lastUsedAppTime = usageStats.getLastTimeUsed();
}
}
}
}
现在queryUsageStats返回空列表。
还有其他方法可以获得前台应用吗?
注意:添加了以下权限以检索usagestats
<uses-permission xmlns:tools="http://schemas.android.com/tools"
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
提前致谢。
答案 0 :(得分:0)
对于Android 6.0.1,您需要重新配置代码以使Android Permissions Framework适用于您的应用。
您可以参考此链接以获取有关此内容的更多信息。 Android Permissions Development for Android 6.0.1 (Marshmallow)
答案 1 :(得分:0)
这是一个较晚的答复,但希望它会对其他人有所帮助。
转到系统设置,搜索“数据使用权限”,然后为您的应用启用该功能,您将收到一个非空列表。