Android - 从未调用 GoogleApiClient ActivityRecognitionIntentService

Android - GoogleApiClient ActivityRecognitionIntentService is never called

我需要在我的应用程序中检测用户动态。我从使用 GooglePlayServicesClient 开始,直到三个月前它运行良好,然后它停止在我的 HTC 一台设备上运行(尽管它仍在我检查过的三种不同设备上运行)。我知道它现在已被 GoogleApiClient 取代,所以我认为这是我的问题,但即使在更改为新的 API 后它仍然无法正常工作。 问题是从未调用给 ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates 的意图。我使用了与以下相同的实现:https://blacode.wordpress.com/2014/12/26/user-activity-recognition-through-new-activityrecognitionapi-in-android-activityrecognitionclient-deprecated/ (同样,此实现适用于其他三台设备,但不适用于 HTC 设备)。

我在网上阅读了一些内容,发现一些类似的问题已通过更新 google 播放或激活 google 播放位置服务或在 android 开发人员设置中禁用模拟位置来解决.不适合我。

有没有人遇到过同样的问题或者知道可能是什么原因?

如果您的 onHandleIntent 没有被触发,请确保您的清单中有一个接收者标签(在应用程序标签内,但在 activity 之外):

    <service
        android:name=".ActivityRecognitionIntentService"
        android:exported="false" />

我为此苦苦挣扎了几个小时,才终于意识到它不见了。我一添加,一切正常。

此外,如果您通过 AndroidStudio 的 IntentService 子菜单添加 IntentService class 而不是仅添加普通的 Java class 并自行设置,它将自动注册在清单中。新建...->服务->IntentService

最终解决的方法是将设备重置为制造商设置,这意味着问题出在设备中的某些设置上,我仍然不知道是什么原因造成的。如果有人找到答案,我会很高兴听到。