>

Usagestats를 사용하여 사용자 사용량 데이터를 검색하려고합니다 ...하지만 잘못된 데이터를 받고 있습니다 ... "매일 00:00:00 ~ 23:59:59" >

   Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_WEEK, -1); \\ the missing line

    UsageStatsManager uStateManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
   List<UsageStats> usageList = uStateManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, cal.getTimeInMillis(), System.currentTimeMillis());

.getTotalTimeInForeground ()를 사용하면 예상과 다른 결과를 얻습니까? 예상 한 결과를 얻지 않고 많은 방법과 다른 방법으로 시도한 올바른 방법을 설정하도록 도와 줄 수 있습니까? 감사합니다


  • 답변 # 1

    이 질문은 조금 낡았지만 나는 UsageStatsManager 와 싸우고 있습니다  지금은 상당한 시간 동안 다른 사람들에게 유용한 몇 가지를 발견했습니다. 이 문제를 해결하는 데 도움이되는 몇 가지 팁이 있습니다.

    Calendar.getInstance()  " Calendar 를 반환  캘린더 필드가 현재 날짜 및시간으로 초기화 된 객체입니다. "(링크) 그 당시의 일일 사용량을 얻으려면 수동으로 자정으로 설정해야합니다.

    와이즈 비츠 같아  UTC 시간을 사용하여 모든 데이터를 저장합니다. 따라서 쿼리 할 때 시간을 조정하십시오.

    UsageStatsManager 를 사용하여 일일 사용 통계를 찾았습니다  완전히 신뢰할 수 없습니다. UTC 시간 조정을 사용하더라도 시간에 따라 오늘 통계 대신 어제 통계를 다시 보내는 것으로 보입니다.

    이 메소드를 쿼리 할 때 어떤 통계를 고려해야하는지 결정하는 방법에 대한 문서는 많지 않으므로 상당히 신뢰할 수 없습니다. 일일 통계를 계산하는 경우 queryUsageStats 를 사용하는 것이 좋습니다. 대신 시간을 수동으로 계산합니다. 계산 된 시간은 UsageEvent 가 리턴 한 시간과 일치합니다.  (해당 메소드가 올바른 통계를 반환하는 경우), 이는 전경 추적에 충분히 신뢰할 수 있다는 증거입니다. 이 질문에 대해이를 수행하는 방법에 대한 자세한 내용이 있으며 구현을 추가했습니다 (링크).

    queryUsageStats

관련 자료

  • 이전 c# - 하위 폴더로 디렉토리 및 파일 이름을 얻는 방법
  • 다음 reactjs - 오류 - thisfriendchat이 함수가 아닙니다 (jquery + react)