Android 应用监控类UsageStatsManager

2018-11-13  本文已影响79人  niknowzcd

获取手机内所有应用的运行状况

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> infoList = manager.getRunningTasks(10);
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> infoList = manager.getRunningAppProcesses();

下面重点说明一下UsageStatsManager类的使用

使用方法

权限添加
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />

配置上这个熟悉之后,还得引导用户在手机设置界面开启对应的权限,引导方式

 Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
 startActivity(intent);
获取手机中正在运行的应用列表
UsageStatsManager usageManager=(UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
    if (usageManager != null) {
        int intervalType = UsageStatsManager.INTERVAL_BEST;
        long endTime = System.currentTimeMillis();
        long startTime = endTime - 10000;

        List<UsageStats> applicationList = usageManager.queryUsageStats(intervalType, startTime, endTime);
        for (UsageStats usageStats : applicationList) {
            if ("test".equals(usageStats.getPackageName())) {
                System.out.println("手机中安装了test这个应用");
                System.out.println("test这个应用在前台的时间 = " + usageStats.getTotalTimeInForeground());
            }
        }
    }


除了能获取相关应用的前台活动时间,UsageStats还提供以下api

参考文档

上一篇 下一篇

猜你喜欢

热点阅读