import * as Device from 'expo-device'; import * as Notifications from 'expo-notifications'; import { Platform } from 'react-native'; export async function registerForPushNotificationsAsync() { if (!Device.isDevice) { alert('Must use physical device for Push Notifications'); return null; } const { status: existingStatus } = await Notifications.getPermissionsAsync(); let finalStatus = existingStatus; if (existingStatus !== 'granted') { const { status } = await Notifications.requestPermissionsAsync(); finalStatus = status; } if (finalStatus !== 'granted') { alert('Failed to get push token for push notification!'); return null; } const token = (await Notifications.getExpoPushTokenAsync()).data; console.log('Expo Push Token:', token); if (Platform.OS === 'android') { await Notifications.setNotificationChannelAsync('default', { name: 'default', importance: Notifications.AndroidImportance.MAX, }); } return token; }