【发布时间】:2017-01-18 11:02:32
【问题描述】:
我正在编写短信应用程序,该应用程序通过restapi 号码和消息从服务器获取发送到哪里,并从接收方接收短信。当收到的短信超过 160 个字符时,我遇到了问题。问题是当我有超过 160 个字符要通过 SMS 发送时。
接收短信代码:
public override void OnReceive(Context context, Intent intent)
{
if (intent.HasExtra("pdus"))
{
var smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");
foreach(var item in smsArray)
{
var sms = SmsMessage.CreateFromPdu((byte[])item);
SendReceivedStatus(sms.OriginatingAddress, sms.MessageBody);
}
}
}
SendReceivedStatus(sms.OriginatingAddress, sms.MessageBody);
我的方法是转换成json的receipentNumber和message。
现在我发送短信代码:
var sent = PendingIntent.GetBroadcast(Application.Context, 0, new Intent("SMS_SENT"), 0);
SmsManager.Default.SendTextMessage(responseModel.receipent, null, responseModel.message, sent, null);
protected override void OnResume()
{
base.OnResume();
var smsSentReceiver = new SMSSentReceiver();
RegisterReceiver(smsSentReceiver, new IntentFilter("SMS_SENT"));
}
public override void OnReceive(Context context, Intent intent)
{
switch ((int)ResultCode)
{
case (int)Result.Ok:
SenderActivity.resultsms = true;
SendStatus();
break;
case (int)SmsResultError.GenericFailure:
SenderActivity.resultsms = false;
SendStatus();
break;
case (int)SmsResultError.NoService:
SenderActivity.resultsms = false;
SendStatus();
break;
case (int)SmsResultError.NullPdu:
SenderActivity.resultsms = false;
SendStatus();
break;
case (int)SmsResultError.RadioOff:
SenderActivity.resultsms = false;
SendStatus();
break;
}
}
如何打包这些消息?
【问题讨论】:
-
有什么问题?当您一开始没有说明问题时,很难为您提供帮助
-
我需要将它从 java 转换为 C#。 stackoverflow.com/questions/13598725/…
-
我需要接收超过160个字符的字符串类型的短信。
标签: xamarin xamarin.android sms