Отправьте SMS с более чем 160 символов

У меня есть небольшие проблемы с отправкой смс с более чем 150 символов.

Я нашел этот код, но я не знаю, как переписать на xamarin android с android.

Код:

SmsManager sm = SmsManager.getDefault();
ArrayList<String> parts =sm.divideMessage(LONG_TEXT);
int numParts = parts.size();
ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>();
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>();
for (int i = 0; i < numParts; i++) {
sentIntents.add(PendingIntent.getBroadcast(getContext(), 0, mSendIntent, 0));
deliveryIntents.add(PendingIntent.getBroadcast(getContext(), 0, mDeliveryIntent, 0));
sm.sendMultiPartTextMessage(mDestAddr,null, parts, sentIntents, deliveryIntents)

Это мой код:

SmsManager smsManager = SmsManager.Default;
            IList<string> parts = smsManager.DivideMessage(responseModel.message);
            var sent = PendingIntent.GetBroadcast(Application.Context, 0, new Intent("SMS_SENT"), 0);
            SmsManager.Default.SendMultipartTextMessage(responseModel.receipent, null, parts, sent, null);

Спасибо за помощь.


person coldzero    schedule 18.01.2017    source источник


Ответы (1)


Вы можете разбить строку на куски определенной длины и использовать SendMultipartTextMessage для отправки длинного текста. Например:

var content = "**HERE GOES SMS CONTENT**";
var destinationAdd = "**HERE GOES DESTINATION PHONE NUMBER**";

SmsManager sm = SmsManager.Default;
if (content.Length >= 150)
{
    List<string> parts = new List<string>();
    //split the string into chunks of 20 chars.
    var enumerable = Enumerable.Range(0, content.Length / 20).Select(i => content.Substring(i * 20, 20));
    parts = enumerable.ToList();
    sm.SendMultipartTextMessage(destinationAdd, null, parts, null, null);
}
else
{
    sm.SendTextMessage(destinationAdd, null, content, null, null);
}
person Grace Feng    schedule 20.01.2017