shounakmulay / Telephony

Flutter plugin for telephony features like query device sms directory, listen for incoming messages, retrieve various network parameters, etc.
https://telephony.shounakmulay.dev
MIT License
140 stars 132 forks source link

Keeps crashing in background #193

Open gsharewz opened 1 year ago

gsharewz commented 1 year ago

Telephony is keep crashing in background for any device. Code

Telephony.instance.listenIncomingSms(
            onNewMessage: (SmsMessage message) {
              // debugPrint('Received message => ${message.body}');
              updateDataOnSms(message);
            },
            onBackgroundMessage: (SmsMessage message) =>
                backgrounMessageHandler(message));

Exception E/AndroidRuntime( 9362): Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.view.FlutterCallbackInformation.callbackLibraryPath' on a null object reference

gsharewz commented 1 year ago

I tried downgrading the flutter version but that didn't help me.

faizann commented 1 year ago

Hi

I upgraded flutter recently and the app mostly can't receive SMS. Did you figure out the solution for your issue?

thanhdang198 commented 1 year ago

Hi

I upgraded flutter recently and the app mostly can't receive SMS. Did you figure out the solution for your issue?

Seem the author is not continue maintained, so you can check my fork at https://pub.dev/packages/another_telephony to resolve this

fumant2000 commented 12 months ago

Salut J'ai récemment mis à jour Flutter et l'application ne peut généralement pas recevoir de SMS. Avez-vous trouvé la solution à votre problème ?

Il semble que l'auteur ne soit pas maintenu, vous pouvez donc vérifier mon fork sur https://pub.dev/packages/another_telephony pour résoudre ce problème

how to stop listening after having received the sms I'm interested in, or how to make it so that if after 30 seconds nothing is received we can stop listening and return a waiting message. here's the function I've made.

`import 'package:telephony/telephony.dart';

import 'dart:async';

Future smsSensor() async { Completer completer = Completer(); Telephony telephony = Telephony.instance;

try { // Créez une fonction pour vérifier si un message vous intéresse bool isInterestingMessage(SmsMessage message) { if (message.address == "TITO" || message.address == "TATA") { int currentTime = DateTime.now().millisecondsSinceEpoch; int timeDifference = currentTime - message.date!; int minutes = timeDifference ~/ 60000;

    // Vérifiez si le message a été reçu il y a moins d'une minute
    if (minutes < 2) {
      // Ajoutez ici votre logique pour filtrer les messages en fonction de leur contenu
      // Par exemple, vérifiez s'il contient des mots-clés spécifiques
      if (message.body?.contains("Transfert de") == true ||
          message.body?.contains("Vous avez recu") == true ||
          message.body
                  ?.contains("avez effectue avec succes le retrait de") ==
              true ||
          message.body?.contains("You have received") == true ||
          message.body?.contains(
                  "Vous avez effectue avec succes le retrait de") ==
              true ||
          message.body?.contains("Retrait d'argent reussi par") == true) {
        return true;
      }
    }
  }
  return false;
}
telephony.listenIncomingSms(
  onNewMessage: (SmsMessage message) {
    if (isInterestingMessage(message)) {
      completer.complete(message.body!);
    }
  },
  listenInBackground: false,
);

} catch (e) { print("wow wow wow wow wow .... va regarder:" + e.toString()); }

String sms = await completer.future; return sms; } `