smsManager.sendTextMessage在短信超过一个字符限制时无法工作

5

我正在处理一个项目,通过短信向朋友发送Firebase动态链接邀请。当我发送较小的链接作为邀请时,我的代码能够完美运行并发送短信。

    try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(number, null, "Check It Out. This one is very nice and useful https://v5uht.app.goo.gl/Zi7X", null, null);
        Toast.makeText(getApplicationContext(), "Cheers :D :D", Toast.LENGTH_LONG).show();
    }

    catch (Exception e) {
        Toast.makeText(getApplicationContext(), "SMS faild, please try again.", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }

然而,当我包含超过一个短信字符限制的更大链接时,它并不发送短信,尽管显示弹出通知。

    String myNewLink = "https://v5uht.app.goo.gl/?link=http://expensecount.com/&apn=com.chtl.ribath.fdynamic1&amv=1&afl=https://play.google.com/store/apps/details?id%3Dcom.belief.colorgalaxy&myPage=2";
    try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(number, null, myNewLink, null, null);
        Toast.makeText(getApplicationContext(), "Cheers :D :D", Toast.LENGTH_LONG).show();
    }

    catch (Exception e) {
        Toast.makeText(getApplicationContext(), "SMS faild, please try again.", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }

我该怎么做才能把在myNewLink中的整个链接包含进来并使其正常工作。 谢谢。


你必须分部分发送。如果需要代码,请告诉我 :) - Mohammad Zarei
我搜索了一些例子,但什么都没有找到...如果您能分享一些代码,那将非常有帮助:D @MohammadZ - asif.ibtihaj
1个回答

14

这段代码可能对你有帮助:

try {

    SmsManager smsManager = SmsManager.getDefault();
    ArrayList<String> msgArray = smsManager.divideMessage(msg);

    smsManager.sendMultipartTextMessage(phoneNo, null,msgArray, null, null);
    Toast.makeText(getApplicationContext(), "Message Sent",Toast.LENGTH_LONG).show();
} catch (Exception ex) {
    Toast.makeText(getApplicationContext(), ex.getMessage().toString(), Toast.LENGTH_LONG).show();
    ex.printStackTrace();
}

1
我曾尝试使用SmsManager类的sendTextMessage发送短信,Android Nougat(Nexus)上已启用所有权限。但是短信未能被发送。现在我只需复制这段代码,它完美地运行。希望这可以帮助其他人 :) - varun
@varun 很高兴听到这个消息... :) - Mohammad Zarei
很棒的答案和很棒的问题!我一直在为太长的消息的问题而苦恼。谢谢大家! - Dracarys
我很高兴听到这个 :) - Mohammad Zarei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接