2011-04-12 45 views
0

我使用的密钥为1024位的RSA加密,加密文本的长度将超过160个字节,并且在发送超过160个字节的SMS时,它会给出例外情况,并在使用sendmultisms()并分割消息之后接收端会得到不可打印的字符,而且我也会遇到如何对SMS进行连接的问题。如何在Android中发送长短信?

+0

我在做类似的事情! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42 2013-01-22 07:58:26

回答

1

你可以使用data-sms它支持真正的8位,其中正常的短信只需要7位。这就是为什么你在没有进一步编码的情况下会在另一边获得垃圾。

+0

什么应该是端口号?它会抛出一个异常 – 2011-04-12 10:35:38

+0

问一个关于那个新问题,并且包括你得到的异常。 – theomega 2011-04-12 13:48:10

1

您也可以使用Base64编码对加密文本进行编码,将其分解为字符串的ArrayList并使用sendMultipartTextMessage。然后根据需要发送尽可能多的SMS。

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

我这样做,但它在接收端它收到不可打印的字符 – 2011-04-12 10:34:14

+1

你是否真的使用base64作为编码? – theomega 2011-04-12 13:46:11

+0

是的,我做到了。这种方法有什么问题? – Corneliu 2011-04-13 10:57:26