react-native-health
react-native-health copied to clipboard
Read/Write permissions not behave correctly
When I grant permission from the permission sheet for sep count,
if only read permission
getAuthStatus return
if only write permission
so if you can see when only give write permission enables read access to but if you execute,"getStepCount" it return 0 if only read write both permission
it gives correct step count reading
So only giving read permission it does not working,can some one clear me if im wrong?
I have added only read permission, then I get this alert. and status is sharing denined!
My code like this now, 'import React, { useState, useEffect } from 'react'; import AppleHealthKit, { HealthValue, HealthKitPermissions, } from 'react-native-health'; import { HealthKitEnum } from '../../../enums';
/* Permission options */ const permissions = { permissions: { read: [AppleHealthKit.Constants.Permissions.StepCount], write: [], }, } as HealthKitPermissions;
const initializeHealthKit = () => { //Show permission sheet AppleHealthKit.initHealthKit(permissions, (error: string) => { if (error) { alert('[ERROR] Cannot grant permissions!'); console.log('[ERROR] Cannot grant permissions!'); } console.log(error); /* Can now read or write to HealthKit */ }); };
const HealthKitController = () => { const getUserTodaysStepCount = () => { initializeHealthKit();
AppleHealthKit.getAuthStatus(permissions, (err, results) => {
console.log(err, results);
console.log(
' HealthKitEnum.HK_PERMISSION_STATUS.SHARING_DENINED',
HealthKitEnum.HK_PERMISSION_STATUS.SHARING_DENINED
);
console.log(
' HealthKitEnum.HK_PERMISSION_STATUS.NOT_DETERMINED',
HealthKitEnum.HK_PERMISSION_STATUS.NOT_DETERMINED
);
console.log(
' HealthKitEnum.HK_PERMISSION_STATUS.SHARING_AUTHORISED',
HealthKitEnum.HK_PERMISSION_STATUS.SHARING_AUTHORISED
);
if (
results.permissions.read[0] ===
HealthKitEnum.HK_PERMISSION_STATUS.SHARING_AUTHORISED
) {
const options = {
includeManuallyAdded: true, // optional; default now
};
console.log(new Date().toISOString());
try {
AppleHealthKit.getStepCount(
options,
(err: Object, results: HealthValue) => {
if (err) {
alert('Problem in reading your step count');
}
alert(`Your todays step coutn - ${results.value}`);
console.log(results);
}
);
} catch (e) {
console.log(e);
}
} else if (
results.permissions.read[0] ===
HealthKitEnum.HK_PERMISSION_STATUS.SHARING_DENINED
) {
alert('You have not granted permmissions');
} else if (
results.permissions.read[0] ===
HealthKitEnum.HK_PERMISSION_STATUS.NOT_DETERMINED
) {
alert(
'You have not determined the permission go to health app settings and grant read and writre permissions'
);
}
});
};
return { getUserTodaysStepCount, }; };
export default HealthKitController; `