背景: Android 5 引入了一个新的UsageStats API,可用于查询不同应用所花费的时间。此 API 用于多个应用程序中,用于检测当前的前台应用程序(如几个问题中所讨论的,如this),但是:
该API需要android.permission.PACKAGE_USAGE_STATS权限,该权限是系统级权限,不会授予第三方应用。但是,声明权限意味着使用 API 的意图,并且设备的用户可以通过设置应用程序授予权限。
由于权限未呈现给用户,应用程序使用带有操作android.settings.USAGE_ACCESS_SETTINGS的意图将用户发送到设置。但有时甚至此设置都不可用:
在某些情况下,匹配的 Activity 可能不存在,因此请务必防范这种情况。
这意味着在这些手机中,几乎不可能访问使用统计信息。
这已在其他问题中讨论过,例如此处和此处。显然,一些制造商决定从某些设备中删除该功能(尤其是三星和 LG,但也可能是其他设备)。
问题:此问题的目的是收集有关那些不允许访问这些设置的设备的信息。请在您发现这种情况的地方发布品牌、型号和操作系统版本。此外,如果有人可以找到访问使用情况统计信息的替代方法,那么如果您分享它会对其他人有所帮助。
请避免指向已弃用的 API,例如getRecentTasks或getRunningAppProcesses(通常会返回几个具有优先级前景的包),或指向如何配置Manifest
文件。