Setup Android Project
Follow these steps to setup your Android project for compatibility with the Sahha SDK.
Minimum Requirements
To use the Sahha SDK, your Android project must support:
- For Device and Activity support, Android 8.0 (API level 26) or above
- For Sleep support, Android 10.0 (API level 29) or above
- For Health Connect support, Android 9.0 (API level 28) or above
- For devices with Android 9.0 ~ Android 13.0, users must download the Health Connect app from the Play Store
- The Health Connect app comes pre-installed on devices with Android 14.0 (API level 34) or above
Step 1) Edit your AndroidManifest
In order to access your user's device sensors, you will need to include the correct uses-permission values in your project's AndroidManifest.xml.
Choose your framework to follow the correct steps:
Step 1) Find the project's AndroidManifest.xml file. This is located in the project's app/src/main folder.
Step 2) Within the file, declare the permissions between the manifest and application code.
Step 3) Here is an example declaring Heart and Activity permissions. Make sure to save the file!
Step 2) Review Sensor Permissions
Each sensor has an associated user-permission values. Only include the sensor values required by your project. You can see the full list below.
<!-- AndroidManifest.xml -->
<!-- heart_rate --> <uses-permission android:name="android.permission.health.READ_HEART_RATE" />
<!-- heart_rate_variability_rmssd --> <uses-permission android:name="android.permission.health.READ_HEART_RATE_VARIABILITY" />
<!-- resting_heart_rate --> <uses-permission android:name="android.permission.health.READ_RESTING_HEART_RATE" />
<!-- blood_glucose --> <uses-permission android:name="android.permission.health.READ_BLOOD_GLUCOSE" />
<!-- blood_pressure_systolic --> <!-- blood_pressure_diastolic --> <uses-permission android:name="android.permission.health.READ_BLOOD_PRESSURE" />
<!-- sleep --> <uses-permission android:name="android.permission.health.READ_SLEEP" />
<!-- steps --> <uses-permission android:name="android.permission.health.READ_STEPS" />
<!-- floors_climbed --> <uses-permission android:name="android.permission.health.READ_FLOORS_CLIMBED" />
<!-- vo2_max --> <uses-permission android:name="android.permission.health.READ_VO2_MAX" />
<!-- oxygen_saturation --> <uses-permission android:name="android.permission.health.READ_OXYGEN_SATURATION" />
<!-- respiratory_rate --> <uses-permission android:name="android.permission.health.READ_RESPIRATORY_RATE" />
<!-- basal_metabolic_rate --> <uses-permission android:name="android.permission.health.READ_BASAL_METABOLIC_RATE" />
<!-- active_energy_burned --> <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED" />
<!-- total_energy_burned --> <uses-permission android:name="android.permission.health.READ_TOTAL_CALORIES_BURNED" />
<!-- body_fat --> <uses-permission android:name="android.permission.health.READ_BODY_FAT" />
<!-- body_water_mass --> <uses-permission android:name="android.permission.health.READ_BODY_WATER_MASS" />
<!-- lean_body_mass --> <uses-permission android:name="android.permission.health.READ_LEAN_BODY_MASS" />
<!-- bone_mass --> <uses-permission android:name="android.permission.health.READ_BONE_MASS" />
<!-- height --> <uses-permission android:name="android.permission.health.READ_HEIGHT" />
<!-- weight --> <uses-permission android:name="android.permission.health.READ_WEIGHT" />
<!-- body_temperature --> <uses-permission android:name="android.permission.health.READ_BODY_TEMPERATURE" />
<!-- basal_body_temperature --> <uses-permission android:name="android.permission.health.READ_BASAL_BODY_TEMPERATURE" />
<!-- exercise --> <uses-permission android:name="android.permission.health.READ_EXERCISE" /> <!-- AndroidManifest.xml -->
<!-- heart_rate -->
<uses-permission android:name="android.permission.health.READ_HEART_RATE" />
<!-- heart_rate_variability_rmssd -->
<uses-permission android:name="android.permission.health.READ_HEART_RATE_VARIABILITY" />
<!-- resting_heart_rate -->
<uses-permission android:name="android.permission.health.READ_RESTING_HEART_RATE" />
<!-- blood_glucose -->
<uses-permission android:name="android.permission.health.READ_BLOOD_GLUCOSE" />
<!-- blood_pressure_systolic -->
<!-- blood_pressure_diastolic -->
<uses-permission android:name="android.permission.health.READ_BLOOD_PRESSURE" />
<!-- sleep -->
<uses-permission android:name="android.permission.health.READ_SLEEP" />
<!-- steps -->
<uses-permission android:name="android.permission.health.READ_STEPS" />
<!-- floors_climbed -->
<uses-permission android:name="android.permission.health.READ_FLOORS_CLIMBED" />
<!-- vo2_max -->
<uses-permission android:name="android.permission.health.READ_VO2_MAX" />
<!-- oxygen_saturation -->
<uses-permission android:name="android.permission.health.READ_OXYGEN_SATURATION" />
<!-- respiratory_rate -->
<uses-permission android:name="android.permission.health.READ_RESPIRATORY_RATE" />
<!-- basal_metabolic_rate -->
<uses-permission android:name="android.permission.health.READ_BASAL_METABOLIC_RATE" />
<!-- active_energy_burned -->
<uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED" />
<!-- total_energy_burned -->
<uses-permission android:name="android.permission.health.READ_TOTAL_CALORIES_BURNED" />
<!-- body_fat -->
<uses-permission android:name="android.permission.health.READ_BODY_FAT" />
<!-- body_water_mass -->
<uses-permission android:name="android.permission.health.READ_BODY_WATER_MASS" />
<!-- lean_body_mass -->
<uses-permission android:name="android.permission.health.READ_LEAN_BODY_MASS" />
<!-- bone_mass -->
<uses-permission android:name="android.permission.health.READ_BONE_MASS" />
<!-- height -->
<uses-permission android:name="android.permission.health.READ_HEIGHT" />
<!-- weight -->
<uses-permission android:name="android.permission.health.READ_WEIGHT" />
<!-- body_temperature -->
<uses-permission android:name="android.permission.health.READ_BODY_TEMPERATURE" />
<!-- basal_body_temperature -->
<uses-permission android:name="android.permission.health.READ_BASAL_BODY_TEMPERATURE" />
<!-- exercise -->
<uses-permission android:name="android.permission.health.READ_EXERCISE" />
Device Sensor
Please note SahhaSensor.device_lock does not require any AndroidManifest.xml permission declarations.
Step 3) Specify your Sensors
Specifying Sensors for Android
For every sensor you specify in getSensorStatus or enableSensors, you will need to include matching uses-permission values in your AndroidManifest.xml.
View the SDK Sensors documentation .
If the values do not match, you are likely to receive build errors and risk your app being rejected on the Google Play Store!
For example, if your project requires the steps and sleep sensors, then included the following uses-permission values:
<!-- AndroidManifest.xml -->
<manifest ... >
<!-- steps --> <uses-permission android:name="android.permission.health.READ_STEPS" />
<!-- sleep --> <uses-permission android:name="android.permission.health.READ_SLEEP" />
<application ... > ... <application ... /><manifest ... /> <!-- AndroidManifest.xml -->
<manifest ... >
<!-- steps -->
<uses-permission android:name="android.permission.health.READ_STEPS" />
<!-- sleep -->
<uses-permission android:name="android.permission.health.READ_SLEEP" />
<application ... >
...
<application ... />
<manifest ... />
Next Steps
Continue to Step 2.) Install SDK to install the Sahha SDK for Android.
- Previous
- iOS
- Next
- Step 2.) Install SDK