zo0r / react-native-push-notification

React Native Local and Remote Notifications
MIT License
6.75k stars 2.05k forks source link

In Old android devices such Android 10 version | Device Token not getting #2414

Open shubhanshubb opened 3 months ago

shubhanshubb commented 3 months ago

Bug

Environment info

react-native info output:

System: OS: macOS 14.5 CPU: (8) arm64 Apple M1 Memory: 114.28 MB / 8.00 GB Shell: version: "5.9" path: /bin/zsh Binaries: Node: version: 22.2.0 path: /opt/homebrew/bin/node Yarn: version: 3.6.4 path: /opt/homebrew/bin/yarn npm: version: 10.7.0 path: /opt/homebrew/bin/npm Watchman: version: 2024.05.06.00 path: /opt/homebrew/bin/watchman Managers: CocoaPods: version: 1.15.2 path: /Users/shubhanshu/.rbenv/shims/pod SDKs: iOS SDK: Platforms:

Library version: x.x.x

Steps To Reproduce

1. 2. ...

Describe what you expected to happen:

  1. I am not getting fcm token in old android device such android 10 or below
  2. It's not asking for permission for Allow Notification Popup

Here is the code for Requesting permission in my project

const NotificationHandler = (authContext) => { const { notification, setNotificationData, UpdateNotification } = authContext; return new Promise(async (resolve, reject) => { requestUserPermission({ notification, setNotificationData, UpdateNotification, }) .then(() => { return resolve(); }) .catch((error) => { console.log("fcm token error", error); return resolve(error); }); }); }; const requestUserPermission = async (authContext) => { let authStatus;

if (Platform.OS === "android") { return PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ) .then((granted) => { if (granted === PermissionsAndroid.RESULTS.GRANTED) { authStatus = messaging.AuthorizationStatus.AUTHORIZED; } else { authStatus = messaging.AuthorizationStatus.DENIED; } }) .catch((err) => { console.log(err); authStatus = messaging.AuthorizationStatus.DENIED; }) .then(() => { return handleAuthorization(authStatus, authContext); }); } else { return messaging() .requestPermission() .then((status) => { authStatus = status; return handleAuthorization(status, authContext); }); } };