maniac-tech/react-native-expo-read-sms

`status === PermissionAndroid.RESULTS.GRANTED` would be checking text against an object.

Offen

#79 geöffnet am 29.01.2025

 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)Java (32 Forks)auto 404
good first issuequestion

Repository-Metriken

Stars
 (84 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

          from what I have seen, status in this case would return 
{
  "android.permission.RECEIVE_SMS": "granted",
  "android.permission.READ_SMS": "denied"
}

so status === PermissionAndroid.RESULTS.GRANTED would be checking text against an object.

this can be rewritten as:

const status = await PermissionsAndroid.requestMultiple([
  PermissionsAndroid.PERMISSIONS.RECEIVE_SMS,
  PermissionsAndroid.PERMISSIONS.READ_SMS,
]);

const granted = PermissionsAndroid.RESULTS.GRANTED;
const denied = PermissionsAndroid.RESULTS.DENIED;
const neverAskAgain = PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN;

if (status[PermissionsAndroid.PERMISSIONS.RECEIVE_SMS] === granted &&
    status[PermissionsAndroid.PERMISSIONS.READ_SMS] === granted) {
  return true;
}

if ([status[PermissionsAndroid.PERMISSIONS.RECEIVE_SMS], status[PermissionsAndroid.PERMISSIONS.READ_SMS]].includes(denied)) {
  console.log("Read/Receive SMS permission denied by user.", status);
} else if ([status[PermissionsAndroid.PERMISSIONS.RECEIVE_SMS], status[PermissionsAndroid.PERMISSIONS.READ_SMS]].includes(neverAskAgain)) {
  console.log("Read/Receive SMS permission revoked by user.", status);
}

Originally posted by @alokpant in https://github.com/maniac-tech/react-native-expo-read-sms/pull/76#discussion_r1863434353

Contributor Guide