2016-09-19 10 views
1

私はアンドロイド用の歩数計アプリを実行します。操作の原則は次のとおりです。 初めてアプリケーションを起動すると、フォアグラウンドモードで実行されるサービスが実行されます。プログラムは、ユーザーにGoogleアカウントのログインを促します。すべてがうまくいけば、GoogleApiClientオブジェクトが作成されます。その後、正常に接続された場合はFitness.SensorsApiが作成され、システムのステップ数だけが尋ねられます。私はデータベースの代わりにたくさんのデータを保持しているので、私はSharedPreferencesを使用し、そこで新しいデータを書きます。アプリケーションが実行中の場合、mainActivityは毎秒SharedPreferencesに接続して新しい値を画面に表示します。すべての仕事は悪くないです。しかし、時々、ステップの数に来ることをやめる。これは日中に発生することがありますが、時々リセットが毎日00:00に、そして時には数日後に問題なく動作することがあります。アプリケーションの完全な再起動のみを支援します。GoogleFit APIが動作しない場合があります

数回は、データが画面に表示されないが、サービスは機能し、データを記録していた。 この場合、アプリケーションの再起動後、直ちに全期間(ハングした画面)のデータを受信しました。 5秒ごとにログにメッセージを送信するので、サービス自体は100%生きています。 誰かが似たようなことに直面している場合は、助けてください。理由は何でしょうか。 GoogleApiClientが接続やその他のものを失うことはありますか?エラーを追跡するには?私は非常に感謝します。

答えて

0

これを確認してください。documentation GoogleのAndroidアプリをGoogleに接続する方法については、「Google Fit」をご覧ください。このガイドをプロジェクト内に正しく設定してください。特にステップ5の場合は、Connect to the fitness service。詳細については、SO questionをチェックしてください。

ここでは、Sensors APIにフィットネスエントリポイントからアクセスする必要があるサンプルコードを示します。

GoogleApiClient client = new GoogleApiClient.Builder(context) 
.addApi(Fitness.SENSORS_API) 
... 
.build(); 
client.connect(); 

PendingResult<Status> pendingResult = Fitness.SensorsApi.add(
client, 
new SensorRequest.Builder() 
.setDataType(DataType.TYPE_STEP_COUNT_DELTA) 
.setSamplingDelay(1, TimeUnit.MINUTES) // sample once per minute 
.build(), 
myStepCountListener); 

詳細については、このリンクをチェックしてください。

関連する問題