Skip to main content

Android Setup

Manual setup for bare React Native projects without Expo.

Prerequisites

  • React Native 0.70+
  • Android SDK 26+ (Android 8.0 Oreo)
  • Health Connect app installed (pre-installed on Android 14+)

Installation

npm install react-native-healthx
# or
yarn add react-native-healthx

Configure build.gradle

Ensure your minimum SDK is 26 in android/build.gradle:

android/build.gradle
buildscript {
ext {
minSdkVersion = 26 // Required for Health Connect
targetSdkVersion = 34
compileSdkVersion = 34
}
}

Configure AndroidManifest.xml

Add permissions and Health Connect configuration to android/app/src/main/AndroidManifest.xml:

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Health Connect Permissions -->
<uses-permission android:name="android.permission.health.READ_SLEEP" />
<uses-permission android:name="android.permission.health.WRITE_SLEEP" />

<!-- Query for Health Connect app -->
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>

<application ...>

<!-- Main Activity with Health Connect intent filter -->
<activity
android:name=".MainActivity"
android:exported="true">

<!-- Existing intent filters... -->

<!-- Health Connect permissions rationale -->
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
</intent-filter>
</activity>

</application>
</manifest>

Register the Package

Add the HealthX package to MainApplication.java or MainApplication.kt:

MainApplication.java
import com.healthx.HealthXPackage;  // Add this import

public class MainApplication extends Application implements ReactApplication {
// ...

@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new HealthXPackage()); // Add this line
return packages;
}
}

Build and Run

npx react-native run-android

Health Connect App

Health Connect must be installed on the device:

  • Android 14+: Health Connect is pre-installed
  • Android 13 and below: Install from Google Play Store

Check Availability

const status = await HealthX.checkAvailability();

if (!status.isAvailable) {
if (status.reason === 'not_installed') {
// Prompt user to install Health Connect
console.log('Please install Health Connect from the Play Store');
}
}

Testing on Emulator

  1. Create an AVD with Google Play Store support
  2. Install Health Connect from the Play Store
  3. Open Health Connect and add some test data
  4. Run your app

Adding Test Data

You can add test sleep data in Health Connect:

  1. Open Health Connect app
  2. Go to "Data and access"
  3. Tap "Sleep"
  4. Tap "Add entry"
  5. Enter sleep details

Permissions

Android Health Connect uses a runtime permission system. When you call requestPermissions(), the user will see a system dialog to grant access.

const result = await HealthX.requestPermissions({
sleep: { read: true, write: true }
});

if (result.sleep?.read) {
console.log('Read permission granted');
}

if (result.sleep?.write) {
console.log('Write permission granted');
}

Users can manage permissions in the Health Connect app settings.