android 应用使用情况统计,Android已安装应用使用时长统计-UsageStatsManager

本文介绍如何在Android 5.1及以上版本利用UsageStatsManager统计应用的使用时长,包括获取权限、读取使用情况、展示数据,并提供源码下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看效果图

2a3321280735

应用使用时长统计截图

源码地址

Step1 授权

必须确保设备的Android版本>=Android5.1(v22),少部分Android5.0(v21)可以使用UsageStatsManager

在AndroidManifest.xml文件中添加权限说明,这是一个system级别的权限,加上tools:ignore="ProtectedPermissions"可以屏蔽调AS的红线(强逼症作怪)

android:name="android.permission.PACKAGE_USAGE_STATS"

tools:ignore="ProtectedPermissions" />

判断是否可以使用AppUsage功能

public static boolean hasAppUsagePermission(Context context) {

UsageStatsManager usageStatsManager = null;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {

usageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);

}

if (usageStatsManager == null) {

return false;

}

long currentTime = System.currentTimeMillis();

// try to get app usage state in last 2 min

List stats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, currentTime - 2 * 60 * 1000, currentTime);

return JListKit.isNotEmpty(stats);

}

打开授权页面

public static void requestAppUsagePermission(Context context) {

Intent intent = new Intent(android.provider.Settings.ACTION_USAGE_ACCESS_SETTINGS);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

try {

context.startActivity(intent);

} catch (ActivityNotFoundException e) {

Log.i(TAG, "Start usage access settings activity fail!");

}

}

Step2 根据获取APP使用情况列表

根据时间范围获取应用使用情况

private void getAppUsage(long beginTime, long endTime) {

String fmt = "yyyy-MM-dd HH:mm:ss";

mHolder.tvTimeRange.setText(String.format("(%s - %s)",

JDateKit.timeToDate(fmt, beginTime),

JDateKit.timeToDate(fmt, endTime)));

// setTitle("数据分析中...");

showLoading("数据分析中...");

// a task can be executed only once,init is requir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值