私は 2 つのアプリで Activity Recognition API をテストしています: Google のサンプル コードと私のアプリでのこのコードの実装。
問題は、両方のアプリがアクティビティ認識を正常に取得し続けていることですが、数時間後にインテント サービスが停止し、両方からアクティビティ認識が得られません。
インテント サービスを使用してジオフェンシング API をテストしたにもかかわらず、インテント サービスが停止する理由はありますか?
私は 2 つのアプリで Activity Recognition API をテストしています: Google のサンプル コードと私のアプリでのこのコードの実装。
問題は、両方のアプリがアクティビティ認識を正常に取得し続けていることですが、数時間後にインテント サービスが停止し、両方からアクティビティ認識が得られません。
インテント サービスを使用してジオフェンシング API をテストしたにもかかわらず、インテント サービスが停止する理由はありますか?
あなたの IntentService は「停止」する可能性があります。次の理由により、「眠りにつく」と言えます。
バッテリーを節約するために、デバイスが長時間「STILL」の状態にあると、アクティビティ レポートが停止する場合があります。デバイスが再び移動すると再開されます。これは、Sensor.TYPE_SIGNIFICANT_MOTION ハードウェアをサポートするデバイスでのみ発生します。
基本的に、API >= 20 を備えたほとんどのデバイスに当てはまります。
詳細はこちらをご覧ください。
残念ながら、アクティビティの更新をリクエストすることしかできず、 ActivityRecognitionApi に現在のアクティビティを継続的に提供させることは不可能です。これは、不可解な「長期間」の間「静止」している場合でも同様です。
私の意見では、ActivityRecognitionApi のこの機能が構成可能であれば、はるかに便利です。