自
Android Lollipop以来,我们现在拥有一个用于访问应用使用统计信息的API.但是,您的应用必须由用户授予这些权限.
我知道使用Settings.ACTION_USAGE_ACCESS_SETTINGS将用户重定向到这些设置.
现在,我的问题是你如何知道用户授予你这些权限,以便你可以停止将他重定向到设置.
谢谢!
解决方法
您可以简单地查询每日间隔和结束时间当前时间的使用状态,如果没有返回任何内容,则表示用户未授予权限
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public boolean doIHavePermission(){ final UsageStatsManager usageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE); final List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,System.currentTimeMillis()); return !queryUsageStats.isEmpty(); }
具有开始日期0和结束日期的每日间隔当前时间必须至少返回今天的使用情况.因此,仅当未授予权限时,它才会为空.