1

我已经搜索了很长时间,但我无法解决这个问题。

我正在开发应用程序使用应用程序,我想让用户可以限制应用程序使用时间。

假设用户想要将 Youtube 应用程序的使用时间限制为 10 分钟。

1.当用户点击按钮后 Youtube 应用程序使用量达到 10 分钟时,我如何发出通知或烤面包机?(我知道事件处理)

  1. 即使我的应用程序成为背景,我也可以让观察者吗?甚至在被摧毁后?

根据我的搜索 registerAppUsageObserver看起来像我想要的,但我不能使用它,因为它的@hide

 public void registerAppUsageObserver(int observerId, @NonNull String[] observedEntities,
                long timeLimit, @NonNull TimeUnit timeUnit, @NonNull PendingIntent callbackIntent)

我可以尝试通过反射来使用它,但我认为它不推荐。

我还有一个很好的源链接,但我不知道如何使用它。

请帮我。谢谢你。

4

1 回答 1

1

我在这方面做了相当多的工作。我想将您引导到我的 smartCBT GitHub,它会在给定的时间段内审查一个人使用他们的应用程序的目的(https://github.com/kris-geyer/smartCBT;特别是,请查看https: //github.com/kris-geyer/smartCBT/blob/master/app/src/main/java/kg/own/smartcbt/ViewModel/RetrieveUsageRecords.java)。

首先,我不相信使用统计管理器。过去对我来说非常不可靠。我认为您要评估使用情况的是使用事件(https://developer.android.com/reference/android/app/usage/UsageEvents.Event)。这些为您提供了一个更细粒度的 android 应用程序使用情况,看起来更准确。您需要为此获得特别许可。实际上,我之前已经根据经验测试了准确性,它非常高。

对于您的应用程序所需的整体结构,我认为您需要一个在后台运行的前台服务,该服务会定期记录人们使用手机的目的。此数据库仅在应用程序更改时更新,因此处理这可能有点棘手,但您会管理的。

当应用程序确定为特定应用程序分配的使用时间已到时,它可以通过从前台服务启动新活动将用户引导回您的应用程序。我不确定这是否仍然可行,android 权限似乎变化得如此之快。如果您可以让应用程序播放用户告诉自己他们使用手机过多并且工作效率高的视频,那将是非常酷的。

祝你好运。:)

于 2020-06-04T11:20:19.090 回答