私はwritapingアプリケーションです。これはrestapi番号とメッセージでサーバーから取得し、受信者からSMSを受信します。私は受け取ったときに問題がある160以上の文字を持っています。そして問題は、私がSMSで送るために160文字以上を持っていることです。Xamarin Android 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);:
SMSコードを受け取ります
これはjson receipentNumberとmessageに変換する私の方法です。
今私の送信のSMSコード:
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;
}
}
どのようにこれらのメッセージをパックするには? SmsMessage.CreateFromPdu((byte[]))
以来
問題点は何ですか?あなたが最初に問題が述べられていないときには、あなたを助けるのは難しいです。 – Demitrian
私はこれをjavaからC#に変換する必要があります。 http://stackoverflow.com/questions/13598725/receive-and-concatenation-sms-more-than-160-characters-in-android – coldzero
文字列型に160文字以上のSMSを受け取る必要があります。 – coldzero