美文网首页
queryUsageStats得到空list

queryUsageStats得到空list

作者: 海内灬存知己 | 来源:发表于2020-05-22 09:42 被阅读0次

    long time = System.currentTimeMillis();
    List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*30, time);
    发现 stats.size()==0
    这种情况一般是缺少权限
    1:判断当前应用是否被授权为有权查看使用情况的应用

    public boolean checkMonitorAppPermission() {
            try {
                Object object = getSystemService(Context.APP_OPS_SERVICE);
                if (object == null) {
                    return false;
                }
                Class localClass = object.getClass();
                Class[] arrayOfClass = new Class[3];
                arrayOfClass[0] = Integer.TYPE;
                arrayOfClass[1] = Integer.TYPE;
                arrayOfClass[2] = String.class;
                Method method = localClass.getMethod("checkOp", arrayOfClass);
                if (method == null) {
                    return false;
                }
                Object[] arrayOfObject1 = new Object[3];
                arrayOfObject1[0] = 43;
                arrayOfObject1[1] = Integer.valueOf(Binder.getCallingUid());
                arrayOfObject1[2] = getPackageName();
                int result = ((Integer) method.invoke(object, arrayOfObject1)).intValue();
                Log.e("result", "========");
                Log.e("result1", String.valueOf(result));
                if (result == 0) {
                    return true;
                } else {
                    return false;
                }
            } catch (Exception ex) {
    
            }
            return false;
        }
    

    2:如果没授权则跳转授权

      Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
      startActivity(intent);
    

    授权后就可以得到最近活跃的应用信息了,问题解决!

    相关文章

      网友评论

          本文标题:queryUsageStats得到空list

          本文链接:https://www.haomeiwen.com/subject/psifahtx.html