UsageStatsManager usageStatsManager = (UsageStatsManager) mContext
                .getSystemService(Context.USAGE_STATS_SERVICE);
        final List<UsageStats> stats =
                usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,
                        calBegin.getTimeInMillis(), calEnd.getTimeInMillis());        if (stats == null) {
            Log.w(TAG, "getAppRuntime: stats is NULL");
        }        final int statCount = stats.size();最后得到的这个size一直是0怎么回事,有XDJM对这个比较熟悉吗?我是第一次用这个函数

解决方案 »

  1.   

    LZ解决没有啊 ,我也碰到了,size都是0
      

  2.   

    http://stackoverflow.com/questions/26431795/how-to-use-usagestatsmanager
      

  3.   

    需要权限,加上这个就好了
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
      

  4.   

    权限问题 
    不是你申请了系统就给你权限的。
    PACKAGE_USAGE_STATS  这个只有系统的应用才能申请到的
      

  5.   

    在manifest里面加上android:sharedUserId="android.uid.system"以及权限 <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
    然后去改一下应用签名,参考一下这个 http://my.oschina.net/zhoulc/blog/119282
      

  6.   

    1. apk要有系统权限:android:sharedUserId="android.uid.system"  ,apk需要系统签名
    2. 有以下权限: <uses-permission xmlns:tools="http://schemas.android.com/tools"  
           android:name="android.permission.PACKAGE_USAGE_STATS"  
           tools:ignore="ProtectedPermissions" />  
    3. 要在 安全-》有权查看使用情况的应用 里设置把该apk的开关打开,也可用代码设置:
         AppOpsManager mAppOpsManager = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
            mAppOpsManager.setMode(AppOpsManager.OP_GET_USAGE_STATS,
             appProcess.uid, appProcess.processName, AppOpsManager.MODE_ALLOWED);
        uid和processName分别为apk得uid和包名