0

최근 앱 사용에 대한 정보를 얻을 필요가 있습니다.안드로이드는 API 레벨 21에서 UsageStatsManager를 얻습니다.

API 21 이전에는이 ​​정보를 얻기 위해 getRunningTasks 또는 getRecentTasks으로 사용되었습니다. 이 메소드는 API 21에서 문서에 따라 사용되지 않습니다.

이제 API 레벨 21에서 도입 된 UsageStatsManager 클래스가 있습니다.
하지만! Context.getSystemService (UsageStatsService) was added only in API level 22!

질문은 - API 21에서 방법을 필요로 얻을 수있는 데이터 ?? dashboards에 따르면이 API 수준에서 13 %의 사용자가 있으며, 나는 그것을 잃고 싶지 않습니다.

답변

1

Context#getSystemService(...)는 API 레벨 1에서 도입되었지만 컨텍스트 'USAGE_STATS_SERVICE 문자열은 그래서 공공 정적 최종 문자열 필드 Context.USAGE_STATS_SERVICE는 API 레벨 22 위로 장치에 액세스 할 수있는 API 레벨 22에서 소개되었습니다. API 레벨 21에서 필요한 데이터를 얻으려면 해결 된 String "usagestats"를이 메소드에 전달하면됩니다.

TL; DR
사용 Context.getSystemService("usagestats")

기타 참고 사항 :
#은 1 USAGE_STATS_SERVICE 필드는 API 레벨 21에 이미 있지만 액세스에서 만든 @hide 속성에 태그되었습니다. API 레벨 22에서는이 기능이 제거되었습니다.

# 2 당신은 @SuppressWarnings("WrongConstant") 달리 안드로이드 스튜디오를 통해 주어진 방법에 대한 속성 검사의 설정 할 수 있습니다 것이다 유효한 일정

없는 불만
관련 문제