我想在我的服务中使用 UsageStatsManager
I want to use UsageStatsManager in my service
我有一个应用程序可以跟踪其他应用程序的屏幕时间。我有一项服务应该在用户在特定应用程序上花费 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>
除非应用进入后台,否则 UsageStatsManager 不会更新。
您可以通过添加当前 运行 应用进入前台的当前时间和时间戳的差异来存档。
有关详细信息,请参阅此答案:
我有一个应用程序可以跟踪其他应用程序的屏幕时间。我有一项服务应该在用户在特定应用程序上花费 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>
除非应用进入后台,否则 UsageStatsManager 不会更新。
您可以通过添加当前 运行 应用进入前台的当前时间和时间戳的差异来存档。
有关详细信息,请参阅此答案: