react-native-health icon indicating copy to clipboard operation
react-native-health copied to clipboard

Read/Write permissions not behave correctly

Open chamile opened this issue 3 years ago • 1 comments

When I grant permission from the permission sheet for sep count,

if only read permission

getAuthStatus return

image if only write permission

image

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

image it gives correct step count reading

So only giving read permission it does not working,can some one clear me if im wrong?

chamile avatar Aug 30 '21 08:08 chamile

I have added only read permission, then I get this alert. and status is sharing denined!

image

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; `

chamile avatar Aug 30 '21 10:08 chamile