私は、ActivityRecognition APIを使用してバックグラウンドでユーザのアクティビティを追跡するアプリケーションを作成しています。ユーザーが指定された時間(たとえば1時間)同じ場所にいれば、散歩をする。私はアクティビティの認識を実装していますが、アプリが開かれている場合のみです。明らかに、アクティビティの更新を送信するには、Google APIクライアントを接続しておく必要があります。私の質問は、バックグラウンドでの行動追跡のために、よりよい解決策は何でしょうか:バックグラウンドでのアクティビティの認識
012)1)30秒後にアクティビティを目覚めさせる主アクティビティ(または別のアクティビティ)にAlarmManagerを実装するには、Google APIクライアントをPlayに接続します次に、アクティビティ分析のためにPendingIntentをIntentServiceに送信します。
2)バックグラウンド(別のスレッド)で継続的に実行され、APIクライアントが接続されたままになるように別のサービス(IntentServiceではなく)を作成し、IntentServiceにアクティビティの更新を送信します。したがって、システムには次の2つのサービスがあります。1)APIクライアントをPlayサービスに接続し、分析のためにIntentServiceに定期的なアクティビティアップデートを送信するサービス。 2)IntentServiceは、ServiceからActivity更新を受信し、そのデータを分析する。
3)君たちが提供するいくつかの他のソリューション()
コメント:私の教師は私がAlarmManagerを使用することを示唆していますが、通常はネットワークの更新のようなもののためにそれを使用するには、それゆえの間隔は、一般的に10分以上のに対しです私は30秒〜1分必要です。だから私はそれを使用することを躊躇しています。
これまでも多くの類似の質問がありましたが、明確な答えは見つかりませんでした。 アクティビティ更新を受信するように接続されたGoogleApiClient
を必要としない -
加速度センサーを使用したり、 – Veener
類似した質問http://stackoverflow.com/questions/28380527/detect-phone-movement-when-screen-is-off – Veener