在Android 6.0.1中获取前台应用。 UsageStatsManager.queryusagestats在版本6.0.1中返回空列表

时间:2016-07-13 14:54:25

标签: android usagestatsmanager

以下代码在版本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" /> 

提前致谢。

2 个答案:

答案 0 :(得分:0)

对于Android 6.0.1,您需要重新配置代码以使Android Permissions Framework适用于您的应用。

您可以参考此链接以获取有关此内容的更多信息。 Android Permissions Development for Android 6.0.1 (Marshmallow)

答案 1 :(得分:0)

这是一个较晚的答复,但希望它会对其他人有所帮助。

转到系统设置,搜索“数据使用权限”,然后为您的应用启用该功能,您将收到一个非空列表。