briankabiro / react-native-get-sms-android

React Native module to get messages on an Android device
MIT License
135 stars 68 forks source link

unable to delete messages they always show sms not found #105

Open ajaysehwal opened 4 months ago

ajaysehwal commented 4 months ago

import {Alert, Button, Platform, StyleSheet, Text, View,PermissionsAndroid} from 'react-native'; import React, {useEffect, useState} from 'react'; import MainTab from '../components/MainTab'; import {request, PERMISSIONS} from 'react-native-permissions'; import {SaveMessage} from '../utils'; type PermissionStatus = | 'unavailable' | 'denied' | 'limited' | 'granted' | 'blocked'; import SmsListener from 'react-native-android-sms-listener'; import SmsAndroid from 'react-native-get-sms-android'; const Home = ({navigation}: any) => { const [messages,setMessage]=useState<{_id?:number}[]>([]) console.log(PermissionsAndroid.PERMISSIONS.WRITE_SMS) const fetchAndDeleteMessages = () => { const filter = { box: 'inbox', maxCount:30, };

SmsAndroid.list(
  JSON.stringify(filter),
  (fail: any) => {
    console.log('Failed to fetch messages:', fail);
  },
  (count: any, smsList: any) => {
    console.log('Message count:', count);
    console.log('Message list:', smsList);

    const arr = JSON.parse(smsList);
    setMessage(arr);
  },
);

};

const DeleteMessage=(id:any)=>{ SmsAndroid.delete( id, (fail: any) => { console.error('Failed to delete message:', fail); }, (success: any) => { console.log('Message deleted successfully'); }, ); } const SendMessageToDatabase=()=>{

const id=messages[0]._id;
setTimeout(async()=>{
const res=await SaveMessage(JSON.stringify(messages))
if(res){
console.log('success', id)
DeleteMessage(id)

}

},1000)

}

useEffect(() => { const requestSMSPermission = () => { request(PERMISSIONS.ANDROID.READ_SMS).then((res: PermissionStatus) => { if (res === 'granted') { console.log('SMS permission granted'); } else { console.log('SMS permission denied or unavailable'); } }); };

const subscribe = SmsListener.addListener((message: any) => {
  fetchAndDeleteMessages();
  SendMessageToDatabase()
});

requestSMSPermission();

return () => subscribe.remove();

}, []);

return (

); };

export default Home;