Android(安卓)获取应用运行时长
16lz
2021-01-24
做了一个应用运行时间接口,首先将自己的service定义完成,自定义service流程在前面的文章里,方法实现是在
frameworks/base/services/core/java/com/android/server/customized/CustomizedService.java里,代码如下:
import android.app.usage.UsageStats;import android.app.usage.UsageStatsManager;import java.util.Map;import java.lang.System;import java.util.Calendar;import java.text.DateFormat;import android.text.format.DateUtils; private UsageStatsManager mUsm; private static final long USAGE_STATS_PERIOD = 1000 * 60 * 60 * 24 * 14; private List mStats; mUsm = (UsageStatsManager) mContext.getSystemService(Context.USAGE_STATS_SERVICE); //初始化UsageStatsManager /* * 获取所有应用运行时间 */ public String getAppTimeUsageInfo(){ long jh = Binder.clearCallingIdentity(); JSONArray json=new JSONArray(); mStats = getUsageList(); if(mStats.size()!=0 && mStats!=null){ for(int i=0;i getUsageList() { long jh = Binder.clearCallingIdentity(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -5); final List stats =mUsm.queryUsageStats(UsageStatsManager.INTERVAL_BEST, calendar.getTimeInMillis(), System.currentTimeMillis()); Binder.restoreCallingIdentity(jh); return stats; }
这个方法获取的是系统所有应用的运行信息,如果需要单个应用的,可以通过包名进行过滤,
更多相关文章
- Android学习之Image操作及时间日期选择器
- android获得控制台log,打印控制台log
- 2011.09.14(2)——— android tabhost位于底部
- Android(安卓)Scroll
- Android列表组件ListView使用详解之数据为空提示信息
- Android(安卓)菜单(OptionMenu)大全
- Android(安卓)Camera Framework层分析
- Android(安卓)中判断是否存在虚拟按键
- android 向数据库写入图片信息 读取图片信息