SMS (7 비트)를 160 자보다 길게 보내려면 메시지를 153 자의 메시지 데이터 부분으로 분리하고 각각에 5 octet UDH (사용자 데이터 헤더)는 멀티 파트 SMS의 일부이며 수신 장치에 의해 '재 조립'되어야 함을 설명합니다.연결된 SMS UDH를 생성하여 메시지 텍스트 앞에 붙입니다.
UDH가 메시지 데이터의 일부로 전송되기 때문에 내가 보내려는 서비스가 무엇이든간에 그것을 무시하고이를 수신자 전화기로 보내야합니다. 수신자 전화기는이를 해독하고 긴 SMS의 부분을 연결합니다 .
다음 테스트 코드를 사용하고 있지만 두 가지 별도의 메시지가 표시됩니다. 내가 뭘 잘못하고 있는지에 대한 제안이 있니?
private void sendButton_Click(object sender, EventArgs e)
{
if ((cellNumberText.Text.Trim().Length == 10) && (messageText.Text.Trim().Length > 0))
{
SendSms(cellNumberText.Text.Trim(), BuildUdh(255, 2, 1) + "Hello first time. ");
SendSms(cellNumberText.Text.Trim(), BuildUdh(255, 2, 2) + "Hello second time. ");
}
}
private string BuildUdh(byte messageId, byte partCount, byte partId)
{
var udg = new byte[5];
udg[0] = 0x00;
udg[1] = 0x03;
udg[2] = messageId;
udg[3] = partCount;
udg[4] = partId;
return BitConverter.ToString(udg);
게이트웨이가 UDH를 올바르게 지정하기위한 API 기능을 제공하지 않습니까? – jalf
아니요, 웹 서비스는 'SendSms (문자열 번호, 문자열 메시지)'메서드 하나만을 표시합니다. – ProfK