我有一个应用程序,可以跟踪其他应用程序屏幕。我有一个服务,它应该在用户花X时间在一个特定的应用程序上之后发出通知。为了跟踪其他应用程序,我使用了一个服务。当我自己的应用程序打开时,其他应用程序的屏幕时间将被正确显示,但是当我的应用程序在后台运行时,细节不会被更新(它们与我自己的应用程序打开时相同),但是一旦我重新打开我的应用程序,细节就会被更新。为什么UsageStatsManager在后台时不能正常工作?
var appList = usm.queryUsageStats(
UsageStatsManager.INTERVAL_DAILY,
System.currentTimeMillis() - 1000 * 3600 * 24,
System.currentTimeMillis()
)我的舱单中有以下代码
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" /> <service android:enabled="true" android:name=".MyService" />
</application>发布于 2021-09-08 12:45:58
除非应用程序处于后台,否则UsageStatsManager不会更新该应用程序。您可以通过添加当前正在运行的应用程序的当前时间和时间戳的差异来将其存档。
有关详细信息,请参阅此答案:How to count app usage time while app is on foreground?
https://stackoverflow.com/questions/69101463
复制相似问题