CarbSens アプリ間インテント連携仕様書(APIドキュメント)

本仕様書は、外部のアプリケーションからAndroidのインテント(Intent)機能を活用し、CarbSensの高度な脈波解析エンジンをダイレクトに呼び出して利用するための開発者向けドキュメントです。

💡 貴社のニーズに合わせて選べる2つの連携パターン

CarbSensとのシステム連携には、以下の2つのアプローチが用意されています。用途に合わせて最適なパターンを選択してください。


【🛍️ パターン1】データ持ち込み型連携 仕様

外部アプリからCarbSensアプリへ、端末内のRAM(メモリ)上で直接CSV形式の脈波データを引き渡します(ファイル保存は不要です)。CarbSensアプリは待機状態から自動復帰し、データをサーバーへアップロードして解析を開始します。

🛍️1. インテント仕様(送信側実装)

添付データ(Intent Extras)

キー(Key) 型(Type) 説明 備考
EXTRA_CSV_TEXT String 解析対象のCSVテキストデータ(最大1MBまで) 必須
EXTRA_SAMPLING_RATE Int <データのサンプリング周波数(Hz) 必須(200Hz以上推奨)
EXTRA_FILE_NAME String 管理用の仮ファイル名(拡張子は .csv) 任意(現在未使用)

🛍️ 2. 送信側(貴社アプリ)の実装コード例 (Kotlin)。



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アプリがインストールされていない場合の処理
}


🛍️ 3. 受信側(貴社アプリ)の受け取り実装例 (Kotlin)

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
        }

}

🛍️ 4. 推奨する入力データ構造 (EXTRA_CSV_TEXT)



【🚀 パターン2】直接測定依頼型連携 仕様

外部アプリ内の「測定開始」ボタン等からインテントを発行し、CarbSensアプリを直接呼び出してその場で新規測定を自動で開始させます。貴社側で脈波データを保持・加工する必要がないため、最も手軽に機能を統合できます。

🚀 1. インテント仕様(送信側実装)

🚀 2. 送信側(貴社アプリ)の実装コード例 (Kotlin)

sendMeasureButton.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アプリが未インストールの場合の処理
    }
}

🚀 3. 受信側(CarbSensアプリ)の挙動

CarbSensアプリは launchMode="singleTask"(または singleTop)でバックグラウンドから復帰するため、既存のタスク状態を維持したまま最前面に表示されます。アクション(START_MEASUREMENT)を検知すると、ユーザーの操作を挟むことなく自動的に新規測定と解析リクエストを実行します。

CarbSens 技術連携について問い合わせる


⚠️注意事項 / Important Notice CarbSens Watch/Dualは、日常の健康管理をサポートするためのツールです。本製品は医療機器ではなく、診断、治療、または病気の予防を目的としたものではありません。測定結果や推定値は参考情報としてご利用いただき、健康に関する重要な決定を行う際には、必ず医療専門家にご相談ください。なお、研究目的でのご利用を検討される場合は、所属機関の指針に基づき、適切な手続きをご確認ください。 CarbSens Watch/Dual is a tool designed to support daily health management. It is not a medical device and is not intended for diagnosis, treatment, or disease prevention. Measurement results and estimates are for reference only. Please consult a healthcare professional before making any important health-related decisions.For research use, please follow your institution’s guidelines and confirm any necessary procedures.

技術提携・実証実験(PoC)に関するお問い合わせ

CarbSensの脈波解析エンジンは、国内外の様々なウェアラブルデバイスやセンサーシステムとの統合が可能です。「自社のデバイスで取得した脈波データが解析可能かテストしたい」「テスト用のサンプルアプリ(送信側)のソースコードが欲しい」など、技術的なご相談は以下のフォームよりお気軽にお問い合わせください。

一般社団法人 日本健康開発機構
jawda (Japan Wellness Development Agency)
問い合わせはこちら