⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shortmessageservice.vb

📁 vc实现串口收发短信
💻 VB
字号:
'//////////////////////////////////////////////////////////////////////////
'// Use at your own risk                                                 //
'// www.hesicong.net                                                     //
'// Copyright Dreamworld. You can use this program freely but no in      //
'// commerial use without my permission.                                 //
'// Authoer: hesicong                                                    //
'// Date: 2007-2-25                                                      //
'//////////////////////////////////////////////////////////////////////////

Imports Dreamworld.Mobile.PhoneControllerSDK
Namespace Dreamworld.Mobile
    Public Class ShortMessageService

        Public Shared Function DecodeSMS(ByVal Index As Integer, ByVal PDUCode As String) As SMSRead
            Dim BaseInfo As SMS.Decoder.PDUDecoder.BaseInfo
            BaseInfo = SMS.Decoder.PDUDecoder.Decode(PDUCode)
            Dim Rst As SMSRead
            Rst.Index = Index
            Rst.SrcNumber = BaseInfo.SourceNumber
            Rst.DestNumber = BaseInfo.DestinationNumber
            Rst.Content = BaseInfo.Text
            If BaseInfo.Type = SMS.Decoder.SMSBase.SMSType.SMS_STATUS_REPORT Then
                Rst.IsStatusReport = True
                Select Case BaseInfo.StatusFromReport
                    Case SMS.Decoder.SMS_STATUS_REPORT.EnumStatus.NoResponseFromSME
                        Rst.StatusFromReport = StatusReportValue.NoResponseFromSME
                    Case SMS.Decoder.SMS_STATUS_REPORT.EnumStatus.NotSend
                        Rst.StatusFromReport = StatusReportValue.NotSend
                    Case SMS.Decoder.SMS_STATUS_REPORT.EnumStatus.Success
                        Rst.StatusFromReport = StatusReportValue.Success
                End Select
            End If
            Rst.ReceivedDate = BaseInfo.ReceivedDate
            Return Rst
        End Function

        Public Shared Function ProduceSMS(ByVal Number As String, ByVal RequireStatusReport As Boolean, ByVal validPeriod As SMSSend.TP_VALID_PERIOD, ByVal Content As String, ByVal ServiceCenterNumber As String) As String()
            'Check for service center setting
            If ServiceCenterNumber = String.Empty Then
                Throw New Exception("Please set service center number first")
            End If
            'Check for SMS type
            Dim Type As Integer '0 for SMS;1 For ConcatenatedShortMessage
            Dim PDUCode() As String
            Dim SMSObject As New SMS.Encoder.SMS
            Dim EMSObject As New SMS.Encoder.ConcatenatedShortMessage
            'Check for coding
            Dim DataCodingScheme As SMS.Encoder.SMS.ENUM_TP_DCS
            Dim i As Integer
            For i = 0 To Content.Length - 1
                If Asc(Content.Chars(i)) < 0 Then
                    DataCodingScheme = SMS.Encoder.SMS.ENUM_TP_DCS.UCS2
                    Exit For
                End If
            Next

            'Check for using ConcatenatedShortMessage

            Select Case DataCodingScheme
                Case SMS.Encoder.SMS.ENUM_TP_DCS.DefaultAlphabet
                    If Content.Length > 160 Then
                        Type = 1
                    End If
                Case SMS.Encoder.SMS.ENUM_TP_DCS.UCS2
                    If Content.Length > 70 Then
                        Type = 1
                    End If
            End Select

            'Produce SMS

            If Type = 0 Then
                With SMSObject
                    .ServiceCenterNumber = ServiceCenterNumber
                    If RequireStatusReport = True Then
                        .TP_Status_Report_Request = SMS.Encoder.SMS.ENUM_TP_SRI.Request_SMS_Report
                    Else
                        .TP_Status_Report_Request = SMS.Encoder.SMS.ENUM_TP_SRI.No_SMS_Report
                    End If
                    .TP_Destination_Address = Number
                    .TP_Data_Coding_Scheme = DataCodingScheme
                    .TP_Message_Reference = 0
                    .TP_Validity_Period = CType(validPeriod, SMS.Encoder.SMS.ENUM_TP_VALID_PERIOD)
                    .TP_User_Data = Content
                End With
                PDUCode = New String() {SMSObject.GetSMSPDUCode}
            Else

                With EMSObject
                    .ServiceCenterNumber = ServiceCenterNumber
                    If RequireStatusReport = True Then
                        .TP_Status_Report_Request = SMS.Encoder.SMS.ENUM_TP_SRI.Request_SMS_Report
                    Else
                        .TP_Status_Report_Request = SMS.Encoder.SMS.ENUM_TP_SRI.No_SMS_Report
                    End If
                    .TP_Destination_Address = Number
                    .TP_Data_Coding_Scheme = DataCodingScheme
                    .TP_Message_Reference = 0
                    .TP_Validity_Period = CType(validPeriod, SMS.Encoder.SMS.ENUM_TP_VALID_PERIOD)
                    .TP_User_Data = Content
                End With
                PDUCode = EMSObject.GetEMSPDUCode            'Note here must use GetEMSPDUCode to get right PDU codes
            End If

            Return PDUCode

        End Function
    End Class
End Namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -