maniac-tech/react-native-expo-read-sms
View on GitHub`status === PermissionAndroid.RESULTS.GRANTED` would be checking text against an object.
Open
#79 opened on Jan 29, 2025
good first issuequestion
Repository metrics
- Stars
- (84 stars)
- PR merge metrics
- (PR metrics pending)
Description
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