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的目标端口?
答案 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"
可以侦听所有端口