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
- Create an AVD with Google Play Store support
- Install Health Connect from the Play Store
- Open Health Connect and add some test data
- Run your app
Adding Test Data
You can add test sleep data in Health Connect:
- Open Health Connect app
- Go to "Data and access"
- Tap "Sleep"
- Tap "Add entry"
- 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.