本仕様書は、外部のアプリケーションからAndroidのインテント(Intent)機能を活用し、CarbSensの高度な脈波解析エンジンをダイレクトに呼び出して利用するための開発者向けドキュメントです。
CarbSensとのシステム連携には、以下の2つのアプローチが用意されています。用途に合わせて最適なパターンを選択してください。
外部アプリからCarbSensアプリへ、端末内のRAM(メモリ)上で直接CSV形式の脈波データを引き渡します(ファイル保存は不要です)。CarbSensアプリは待機状態から自動復帰し、データをサーバーへアップロードして解析を開始します。
com.carbsens.action.ANALYZE_PPG貴社のCarbSensアプリのパッケージ名Intent.FLAG_ACTIVITY_NEW_TASK| キー(Key) | 型(Type) | 説明 | 備考 |
|---|---|---|---|
| EXTRA_CSV_TEXT | String | 解析対象のCSVテキストデータ(最大1MBまで) | 必須 |
| EXTRA_SAMPLING_RATE | Int | <データのサンプリング周波数(Hz) | 必須(200Hz以上推奨) |
| EXTRA_FILE_NAME | String | 管理用の仮ファイル名(拡張子は .csv) | 任意(現在未使用) |
val finalCsvString = "830400563245156352,-300909,0,0,0\n830400563250838144,-301048,0,0,0\n..."
val intent = Intent("com.carbsens.action.ANALYZE_PPG").apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
//setPackage("com.carbsensのアプリアプリパッケージ名") // ターゲット制限
// メモリ(String)でCSVデータを直接渡す
putExtra("EXTRA_CSV_TEXT", finalCsvString)
// サンプリング周波数を指定(CarbSens側で自動調整します)
putExtra("EXTRA_SAMPLING_RATE", 200)
// 識別用のファイル名
//putExtra("EXTRA_FILE_NAME", "PolarPPG_Measurement.csv")
}
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
// CarbSensアプリがインストールされていない場合の処理
}
CarbSensアプリ側では、インテントを検知した際に以下のロジックでメモリ(String)から直接CSVデータを復元し、指定されたサンプリング周波数(Hz)を元に自動調整を行ってから解析へ進みます。
解析結果を戻します。
// ★★★ 自動受信はここに書く ★★★
if (intent?.action == "com.sendtocarb.action.RESULT") {
Log.d("SendToCarb", "Intent CALLED, action=${intent?.action}")
val result = intent.getStringExtra("result_text") ?: "No result"
resultTextView.text = result
}
}
\n)[タイムスタンプ],[計算済みの脈波値],0,0,00 で固定(間引き)していただくことで、転送サイズを大幅に削減(100KB以下推奨)でき、超高速な解析が可能となります。外部アプリ内の「測定開始」ボタン等からインテントを発行し、CarbSensアプリを直接呼び出してその場で新規測定を自動で開始させます。貴社側で脈波データを保持・加工する必要がないため、最も手軽に機能を統合できます。
com.carbsens.action.START_MEASUREMENT貴社のCarbSensアプリのパッケージ名Intent.FLAG_ACTIVITY_NEW_TASKsendMeasureButton.setOnClickListener {
val intent = Intent("com.carbsens.action.START_MEASUREMENT").apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
setPackage("貴社のCarbSensアプリのパッケージ名")
}
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
// CarbSensアプリが未インストールの場合の処理
}
}
CarbSensアプリは launchMode="singleTask"(または singleTop)でバックグラウンドから復帰するため、既存のタスク状態を維持したまま最前面に表示されます。アクション(START_MEASUREMENT)を検知すると、ユーザーの操作を挟むことなく自動的に新規測定と解析リクエストを実行します。
CarbSensの脈波解析エンジンは、国内外の様々なウェアラブルデバイスやセンサーシステムとの統合が可能です。「自社のデバイスで取得した脈波データが解析可能かテストしたい」「テスト用のサンプルアプリ(送信側)のソースコードが欲しい」など、技術的なご相談は以下のフォームよりお気軽にお問い合わせください。
一般社団法人 日本健康開発機構