質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1519閲覧

[Android]GoogleFitに記録されている心拍数を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2019/03/19 02:45

前提・実現したいこと

こんにちは、Android端末のGoogleFitに記録されている心拍数をHistoryAPIを使って取得したいです

試してみた所、Requestは帰ってきてStatusCodeはSUCCESSになっているのですが、中身がnullです

ご存知の方いましたら、教えていただけませんでしょうか?
よろしくお願いします。

発生している問題・エラーメッセージ

帰ってきたリザルトです

DataReadResult{status=Status{statusCode=SUCCESS, resolution=null}, dataSets=[], buckets=7 buckets}

該当のソースコード

kotlin

1package com.example.heartrate_historytest 2 3import android.app.Activity 4import android.content.Intent 5import android.support.v7.app.AppCompatActivity 6import android.os.Bundle 7import android.util.Log 8import com.google.android.gms.auth.api.signin.GoogleSignIn 9import com.google.android.gms.common.api.GoogleApiClient 10import com.google.android.gms.fitness.Fitness 11import com.google.android.gms.fitness.data.DataType 12import com.google.android.gms.fitness.request.DataReadRequest 13import java.util.concurrent.TimeUnit 14import java.util.* 15import com.google.android.gms.fitness.FitnessOptions 16 17class MainActivity : AppCompatActivity() { 18 19 private val REQUEST_OAUTH = 1 20 private val TAG = "HeartRateTest" 21 22 23 override fun onCreate(savedInstanceState: Bundle?) { 24 super.onCreate(savedInstanceState) 25 setContentView(R.layout.activity_main) 26 27 val fitnessOptions = FitnessOptions.builder() 28 .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ) 29 .addDataType(DataType.AGGREGATE_HEART_RATE_SUMMARY, FitnessOptions.ACCESS_READ) 30 .build() 31 32 if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) { 33 GoogleSignIn.requestPermissions( 34 this, 35 REQUEST_OAUTH, 36 GoogleSignIn.getLastSignedInAccount(this), 37 fitnessOptions 38 ) 39 } else { 40 accessGoogleFit() 41 } 42 } 43 44 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { 45 if (resultCode == Activity.RESULT_OK) { 46 if (requestCode == REQUEST_OAUTH) { 47 accessGoogleFit() 48 } 49 } 50 } 51 52 private fun accessGoogleFit() { 53 val cal = Calendar.getInstance() 54 cal.time = Date() 55 val endTime = cal.timeInMillis 56 cal.add(Calendar.WEEK_OF_YEAR, -1) 57 val startTime = cal.timeInMillis 58 59 60 val readRequest = DataReadRequest.Builder() 61 .aggregate(DataType.TYPE_HEART_RATE_BPM, DataType.AGGREGATE_HEART_RATE_SUMMARY) 62 .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 63 .bucketByTime(1, TimeUnit.DAYS) 64 .build() 65 66 val lastSignedInAccount = GoogleSignIn.getLastSignedInAccount(this) 67 68 if(lastSignedInAccount != null) { 69 Fitness.getHistoryClient(this, lastSignedInAccount) 70 .readData(readRequest) 71 .addOnSuccessListener { 72 Log.d(TAG, "onSuccess()") 73 } 74 .addOnFailureListener { e -> 75 Log.e(TAG, "onFailure()", e) 76 } 77 .addOnCompleteListener { 78 Log.d(TAG, "onComplete()") 79 } 80 }else{ 81 82 } 83 } 84} 85 86 87 88 89

試したこと

・OAuth 2.0クライアントを削除して再度作成
・アプリのGoogleFit認証を解除して再度認証

補足情報(FW/ツールのバージョンなど)

Android Studio 3.3.1
Kotlin 1.3.21

Library
com.google.android.gms:play-services-fitness:16.0.1
com.google.android.gms:play-services-auth:16.0.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

readDataではなく、readDailyTotalを使用する

投稿2019/03/19 09:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問