Android发送短信设置目标端口Xamarin

时间:2016-01-29 20:18:15

标签: android xamarin sms

Xamarin文档中的此代码提供了两种发送SMS的方法。如下所示的第一种方法没有任何与端口相关的参数:

SmsManager.Default.SendTextMessage ("1234567890", null,
"Hello from Xamarin.Android", null, null);

第二种方法:

var smsUri = Android.Net.Uri.Parse("smsto:1234567890");
var smsIntent = new Intent (Intent.ActionSendto, smsUri);
smsIntent.PutExtra ("sms_body", "Hello from Xamarin.Android");  
StartActivity (smsIntent);

如何设置SMS的目标端口?

2 个答案:

答案 0 :(得分:0)

SMSManager.SendDataMessage()有一个PORT参数

答案 1 :(得分:0)

任何端口寻址的SMS消息都作为数据(二进制)SMS处理,至少在Android中。

要使用Treeview向特定端口发送邮件,您必须使用SmsManager方法。如果接收应用正在侦听特定端口上的文本消息,那么它(可能)将知道如何将数据解码为纯文本。

启动另一个SMS应用来处理发送 - 如第二种方法所示 - 不是一个可能的选择。您的普通SMS客户端可能根本不会处理数据消息。例如,平台应用程序不处理它们,SMS提供程序只是丢弃它们。如果用户偶然拥有一个,那么您的应用需要知道SendDataMessage()上所期望的密钥和数据格式,其中没有事实上的标准,据我所知。

此外,如果您的应用需要处理传入的端口寻址消息,则需要为数据SMS配置Receiver。 Intent将具有IntentFilter操作,数据方案为"android.intent.action.DATA_SMS_RECEIVED",数据端口可以是特定的,或者通配符"sms"可以侦听所有端口