Android手动启动ActivityRecognition
我的Android应用程序需要检测当前活动(跑步、走路等) 我按照Android开发页面上的说明进行操作: 在我的意向服务中:Android手动启动ActivityRecognition,android,google-play-services,activity-recognition,android-intentservice,Android,Google Play Services,Activity Recognition,Android Intentservice,我的Android应用程序需要检测当前活动(跑步、走路等) 我按照Android开发页面上的说明进行操作: 在我的意向服务中: protected void onHandleIntent(Intent intent) { if (ActivityRecognitionResult.hasResult(intent)) { ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(in
protected void onHandleIntent(Intent intent) {
if (ActivityRecognitionResult.hasResult(intent)) {
ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);
// Put your application specific logic here (i.e. result.getMostProbableActivity())
}
}
这是我的问题:我想自己开始活动识别。Android开发页面上的代码似乎应该这样做。但是如果我不将服务添加到AndroidManifest,它将不会做任何事情。将调用OnConnectiond()方法,但不会调用OnHandleContent()
所以我想我可能只需要把它添加到清单中。现在我确实收到了活动,但我一直都收到。这也不是我想要的。我做错了什么
提前感谢,,
Steff或者,您可以“手动”完成,而无需
谷歌播放服务
。
看看我的答案。其主要思想是检测当前的top
活动
,即外部应用程序的活动
。您可以创建服务
,它将监控顶级活动。谢谢,但我仍然希望找到一个解决方案,可以使用Android提供的逻辑。为什么我要调用mActivityRecognitionClient.connect()代码>如果没有机会以编程方式启动识别。如果我将服务添加到清单中,我甚至不调用该函数,它仍然可以工作。
protected void onHandleIntent(Intent intent) {
if (ActivityRecognitionResult.hasResult(intent)) {
ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);
// Put your application specific logic here (i.e. result.getMostProbableActivity())
}
}