2015-05-26 34 views
0

我有一個短信應用程序,希臘的一個用戶正在報告一個國家字符的問題。一切正常,但當他在我的應用程序中輸入常見的希臘字母,如阿爾法,測試版時,SMS會在70個字符後分成兩部分。但是如果他使用內置的默認SMS應用程序,他可以在分割前輸入160個字符。divideMessage是如何工作的

ArrayList<String> msgTexts = null; 
    SmsManager sms = SmsManager.getDefault(); 

    msgTexts = sms.divideMessage(sBuf); 

怎樣才能讓divideMessage和sendMultipartTextMessage與希臘民族特色的正常工作?我沒有聽到任何其他人報道過這個詞。

  • 手機:三星GT S7580採用Android 4.2.2
  • 內置預設的短信應用程序使用
  • 希臘語中移動設置

任何想法用嗎?

回答

0

您需要閱讀本http://en.wikipedia.org/wiki/Short_Message_Service尤其「消息大小」一章

短消息可以使用多種字母進行編碼:該 默認GSM 7比特字母表中,8位數據的字母和16位的 UCS-2字母表。 根據手機中配置的用戶有哪些字母 ,這會導致最大個別短消息大小爲160個7位字符,140個8位字符或70個個16位字符。

+0

好的,謝謝。我以爲divideMessage是爲我處理這個。 –

+0

許多短信應用程序提供了將重音字符轉換爲計劃的功能,即只要語言允許,就可以防止使用UTF編碼並適合更多的字符,例如''''>'a','ł'=>'l'等等。每條消息。 –

0

的SMSC和手機之間的短消息的傳輸是 每當使用SS7協議 的移動應用部分(MAP)來完成。[43]消息與MAP MO-和MT-ForwardSM操作一起發送,其有效載荷長度受到信令協議的約束限制到精確的140個八比特組(140個八比特組* 8比特/ 個八比特組= = 1120比特)。短消息可以使用各種各樣的 字母表進行編碼:默認的GSM 7位字母表,8位數據字母表, 和16位UCS-2字母表。取決於用戶在手機中配置了哪個字母,這導致個別短消息的最大長度爲160個7位字符,140個8位 個字符或70個16位字符。 GSM 7位字母表支持爲GSM手持設備和網絡設備必須使用的 [44],而阿拉伯文,中文,韓文,日文或西里爾語等 文字的字符必須爲字母語言(例如烏克蘭文,塞爾維亞文,保加利亞文等)。 )必須是使用16位UCS-2字符編碼編碼的 (請參閱Unicode)。路由數據和其他元數據是有效載荷大小的補充。

@Wikipedia