收听所有短信并在 Xamarin 中收到明确消息时执行某些操作 Android

Listen to all SMSes and do something when the definite message is received in Xamarin Android

我希望我的 android 应用程序侦听所有传入的消息,并在收到预期消息时执行它应该执行的操作。比如我想在接收到phone丢失的消息时,将phone的位置发送给一个预设的号码,我不关心它从哪个号码收到消息,只关心消息将发送的应发送到指定号码(例如我的第二个号码)。 我写了消息代码,它们在程序中,我唯一的问题是接收消息并将它们彼此区分开来并分离正确的消息。

如果我的问题很肤浅或者我的解释不准确,我深表歉意。我是 Xamarin 的新手,还没有成为专业人士。如果解释不完整,请告诉我问题出在哪里,我会解释更多。谢谢

您可以尝试使用BroadcastReceiver(android.provider.Telephony.SMS_RECEIVED)来收听短信。

更多详细信息请参考官方文档:Broadcast Receivers in Xamarin.Android.

类似于:

[BroadcastReceiver(Enabled = true)]
[IntentFilter(new[] { "android.provider.Telephony.SMS_RECEIVED" })]
class SMSBroadcastReceiver: BroadcastReceiver
{
    public static string IntentAction = "android.provider.Telephony.SMS_RECEIVED";
    public override void OnReceive(Context context, Intent intent)
    {
       if (intent.Action != SmsRetriever.SmsRetrievedAction)
        return;

       var extrasBundleundle = intent.Extras;
       if (extrasBundleundle == null) return;
       var status = (Statuses)extrasBundleundle.Get(SmsRetriever.ExtraStatus);
       switch (status.StatusCode)
         {
            case CommonStatusCodes.Success:
            // Get SMS message contents
            var messageContent = (string)extrasBundleundle.Get(SmsRetriever.ExtraSmsMessage);
            
              break;

            case CommonStatusCodes.Timeout:
            
              break;
         }          
    }
}

不要忘记添加权限 <uses-permission android:name=”android.permission.RECEIVE_SMS”/>