2

在查看网站后,我无法找到任何解决此问题的方法。让我再解释一下:

我正在尝试从应用程序(以编程方式)发送多部分短信。它实际上可以在我的设备(Nexus 4)上运行,但我在 Galaxy Note 上进行了尝试,它将任何长尺寸的 SMS 转换为 MMS,并且该应用程序只发送短 SMS。有什么线索吗?三星 API 或其他东西是否会阻止执行 sendMultipartTextMessage() 方法?

在我的发送函数中,我有日志调试,它显示在屏幕上,所以对这个函数的调用做得很好..

谢谢你的帮助!

这是我使用的代码:

public static void sendSMS(final Activity a, String phoneNumber, String message)
{        
    try {
        SmsManager sms = SmsManager.getDefault();
        ArrayList<String> parts = sms.divideMessage(message); 

        ArrayList<PendingIntent> sendIntents = new ArrayList<PendingIntent>(parts.size());
        for (int i = 0; i < sendIntents.size(); i++)
        {
            Intent sendInt = new Intent("");
            PendingIntent sendResult = PendingIntent.getBroadcast(a.getApplicationContext(), 0, sendInt, PendingIntent.FLAG_ONE_SHOT);
            sendIntents.add(sendResult);
        }

        sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
        ContentValues values = new ContentValues();

        values.put("address", phoneNumber);
        values.put("body", message); 

        a.getApplicationContext().getContentResolver().insert(Uri.parse("content://sms/sent"), values);
    } catch(Exception e) {
        e.printStackTrace(System.out);
    }
}
4

1 回答 1

1
    public void sendSMS(String phoneNumber, String longMessage) {
    try {

        SmsManager sms = SmsManager.getDefault();
        ArrayList<String> parts = sms.divideMessage(longMessage);
        sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
   }

还添加此权限:

<uses-permission android:name="android.permission.SEND_SMS"/>

以上代码适用于 Samsung Galaxy Note 2 (Android 4.1.1)、Micromax HD Canvas (Android 4.1.1)、Samsung Galaxy S3 (Android 4.1.1)、HTC One X (Android 4.0)。

所以这个功能在三星手机上对我来说不是阻塞的。

于 2013-04-19T08:59:36.320 回答