現在の心拍数サムスン健康を入手

qwerty配列:

私は、サムスンの健康を使用して、現在の心拍数を取得しようとしています。私が使用していますサムスンのSDKを Androidが上で私のコードを基づかためのステップをカウントするために提供される例ここで私は、私は午後6時でやったいくつかのテストのためにコードを適応する方法です。

HealthDataResolver resolver = new HealthDataResolver(mStore, null);

// Set time range from start time of today to the current time
long startTime = 16 * 60 * 60 * 1000;
long endTime = startTime + 2 * 60 * 60 * 1000;
HealthDataResolver.Filter filter = HealthDataResolver.Filter.and(
        HealthDataResolver.Filter.greaterThanEquals(HealthConstants.HeartRate.START_TIME, startTime),
        HealthDataResolver.Filter.lessThanEquals(HealthConstants.HeartRate.END_TIME, endTime));

HealthDataResolver.ReadRequest request = new ReadRequest.Builder()
            .setDataType(HealthConstants.HeartRate.HEALTH_DATA_TYPE)//.setDataType(HealthConstants.StepCount.HEALTH_DATA_TYPE)
            .setProperties(new String[] {HealthConstants.HeartRate.HEART_RATE})
            .setLocalTimeRange(
                HealthConstants.StepCount.START_TIME,
                HealthConstants.StepCount.TIME_OFFSET,
                startTime, endTime)
            .setFilter(filter)
            .build();

try {
    resolver.read(request).setResultListener(mListener);
} catch (Exception e) {
    Log.e(MainActivity.APP_TAG, "Getting step count fails.", e);
}

だから、基本的に、問題は元々 、ステップコードは一日の間隔を(meassuredということですendTime = startTime + ONE_DAY_IN_MILISECONDS)。私は、心臓が、最後の20秒間の平均ビート取得するためにこのコードを適応しようとしたが、私は一時間よりも低い区間にのstartTimeとendTimeの間のマージンを縮小したときに、私が取得平均はゼロです。そこで、私の質問は:これは、現在の心拍を得るための正しい方法ですか?もしそうなら、私が間違ってやっているか、どのようにすることはこれを達成することができますか?

qwerty配列:

私は最終的に答えを見つけました。サムスンの健康は非常に低い周波数でそれのデータが更新されます。これを変更することはできませんし、小さな時間間隔にアクセスしようとするとき、したがって、それは任意のレジスタを見つけて、ゼロの値を取得していません。これを行うための正しい方法は、直接使用してBLEを介したリストバンドに接続するために、あるデバイスのサムスンSDKを異なるmeassurementsを得るためのガイドラインの束があります。このような場合のために、それはハートレートモニターガイドを使用する必要があります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=320243&siteId=1