Health ConnectとInBodyを連携しTaskerアプリでデータ抽出(Android)

3万円の体組成計「InBody Dial H30」を購入して毎日測定し始めたが……

 

Amazon.co.jp: インボディ(InBody)体組成計 InBody Dial H30 年齢・性別による統計補正(平均化)されずに測定可能 スマホ連動 アプリ対応 インボディダイアル Wi-Fiモデル : ホーム&キッチン
Amazon.co.jp: インボディ(InBody)体組成計 InBody Dial H30 年齢・性別による統計補正(平均化)されずに測定可能 スマホ連動 アプリ対応 インボディダイアル Wi-Fiモデル : ホーム&キッチン

 

データ閲覧はInBodyのアプリを使う必要がある

 

今まで 自作のWebサイトでグラフや筋トレ結果と一緒に管理していたので不便だ。

 
 

それでも、GoogleFitなどの他サービスと連携してAPIでデータ取得が可能だろうと思ってた……。

 
 

が、今年の5月にGoogleFit APIサービスの終了が正式に発表された。

 
 

 

Google Fit Web:終了済み(2023年)
Google Fit API:2025年12月で直接連携が終了予定

 

ただ調べてみると GoogleFit APIで取得していた身体活動情報は、Health Connect(ヘルスコネクト)というアプリ&APIを使用して取得すれば良いらしい。

AndroidアプリでヘルスコネクトAPIを活用して歩数データを取得する方法|株式会社フィノバレー_照井
こんにちわ、株式会社フィノバレーでモバイルアプリチームリーダーを担当している照井です。 以前からGoogleFit APIは非推奨となりヘルスコネクトへの移行を促す話は挙がっていましたが、今年の5月にGoogleFit APIサービスの終了が正式に発表されました。 これまでGoogleFit APIで取得していた身...

であれば、

 

Health ConnectからInBodyデータを取得し、HTTPリクエストで自身のサーバーに転送する

 

これが実現出来れば事が足りる。そして その手段は2つある。

 

  • 1) 他人のAndroidアプリを活用(Tasker + Health Connect Plugin + HTTPリクエスト)
  • 2) Androidアプリを自作(Kotlin + Health Connect SDK + OkHttp)

 

Androidアプリの自作は敷居が高いので、他人のAndroidアプリ(Tasker)を使って実現してみる。

Taskerとは、Android用の自動化ツール。

特定の条件やイベントが発生した時に、あらかじめ設定したアクションを自動的に実行させることができる。

Tasker + Health Connect Plugin でHealth Connect のデータを抽出

Tasker は有料Androidアプリだ。

実はプライベートでのAndroidアプリ購入は初めて。

そもそも実現できないのであれば無駄になるから購入したくない……。

それは大丈夫。Android のHealth Connectと連携するTaskerプラグインが存在する事が分かってる。

Releases
Android Health Connect Plugin for Tasker. Contribute to RafhaanShah/TaskerHealthConnect development by creating an account on GitHub.

さらに、他の自動化にも便利っぽいので値段も安いし購入。

 

大まかな流れは次のとおり。

  • InBodyアプリがHealth Connectにデータを書き込むよう設定
  • Tasker Health Connect PluginをTaskerと連携し、InBodyデータを取得
  • Taskerでのタスク作成しデータをJSON形式で取得し、必要に応じて処理
  • スケジュール設定: 定期的にデータを取得・送信する(任意)

Tasker を利用したことが無いので、そこに関して記載しておく。

Taskerアプリで 新しいタスクを作成

「Health Connect Tasker Plugin」のAPKはダウンロードし ADBを使ってインストールを行う。

 

Taskerのホーム画面で「+」をタップし、新しいタスクを作成

 

タスク名を入力(InBodyDataFetch)

プラグイン連携&設定を行う

「+」をタップ > 「Plugin」 > 「Tasker Health Connect」を選択し、タスク内でアクションを追加する。

さらに「Read Data」を選択し「Configuration」をタップしてプラグイン設定画面を開く。

プラグイン設定画面は英語。

ヘルスレコードのクラスには、取得したいデータ種別を直接指定する。

  • 体重: WeightRecord
  • 体脂肪: BodyFatRecord
  • 基礎代謝率: BasalMetabolicRateRecord

Time Range(データの取得期間)であるスタート、エンド期間は、他の箇所で設定するので

「%StartTime」「%EndTime」

と書いておこう。

「%StartTime」「%EndTime」の設定

最初はこの手順を踏まなかったのでハマったが、乗算(×)を使った数式(%TIMES×1000)は直接入力不可らしい。

このためTaskerの「変数の設定」アクションで予め計算結果を変数に保存しておく必要がある。

%StartTimeの設定

%TIMEMS – 86400000

%EndTimeの設定

%TIMEMS

ファイルに書き込み

データを格納する変数(%healthconnectresult)と、保存フォルダを指定する。

ボタンを押せば選択肢が出る。

これによりJSON形式のデータが変数に保存される。

実行する

実行ボタン「▶」を押して実行ログを見ると動作してる。

設定したフォルダにJSONファイルがあることも確認。

このJSONは、2025年8月19日 15:39:00 JST頃にInBodyアプリで記録された、体重約59.9 kgのデータ を表している。

【番外】サーバー側でコード取得

次のようなPHPのコードを作成する。

次のように事前に動作を確認できる。

でもTaskerでの実現は止めた。理由は次。

おわりに

まとめると、次の設定を登録する必要がある。

  • 「%StartTime」の変数を設定
  • 「%EndTime」の変数を設定
  • 「Read Data」データ取得の設定
  • 「ファイルに書き込み」または「HTTP転送」の設定

そして順番も重要なので次のように並び替える。

最初は本当に分からなかった。実現できたのは GrokAI3 様の御神託のおかげ。

 

© 泡沫に神は微睡む/安田 のら/KADOKAWA

 
 

で取得して分かったこと。

 
 

Health Connectがサポートするデータ型は限られており、InBodyのような高度な体組成分析(筋肉量や骨格筋量など)を直接抽出する機能は現時点では完全には提供されてない。

「体重」「体脂肪」「基礎代謝」しかデータを管理してないっぽい。

android.health.connect.datatypes  |  API reference  |  Android Developers

 
 

ズコーーーーー

 
 

 

欲しいのは「筋肉量」と「骨格筋量」だよ……そのためにInBody買ったんだからさ……

タイトルとURLをコピーしました