设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> 用户界面 >> 编写SMS程序入门 -IT资源在线

编写SMS程序入门 -IT资源在线 -

Introduction To A lication Programming With SMS
编写SMS程序入门

Microsoft Corporation
October 2002
A lies to:
  Pocket PC 2002 Phone Edition
  Microsoft® eMbedded Visual Tools
版权声明:本文的著作权属英文原文作者,允许非商业性转载请注明原文出处、翻译者并保持该文的完整性。谢绝商业性转载,如有需要请自行和原文作者及翻译者联系。
Summary: Learn how to Send SMS me ages from your eMbedded Visual Basic a licatio . Take advantage of Pocket PC 2002 Phone Edition"s robust su ort for SMS (Short Me age Service) when you build your a licatio .
概要:学习如何使用你的eMbedded Visual Basic应用程序发送SMS消息。当你创建程序时,需要得到Pocket PC 2002 Phone Edition 对SMS(短消息服务)的充分支持。
Download the introa .exe from the MSDN Code Center.
Contents

SMS and Pocket PC Phone Edition
SMS-Enabled A licatio 
Sending SMS Sample
Code Walkthrough
Conclusion
SMS and Pocket PC Phone Edition
SMS和Pocket PC Phone版本

Short Me age Service is a standard for sending short alpha-numeric me ages (max 160 characters) between mobile phones in Global System for Mobile Communicatio  networks (GSM). It works much like paging, but with text, and most phones today have su ort for SMS.
Short Me age Service是通过Mobile Communicatio  networks (GSM)的全球系统在移动电话间发送short alpha-numeric me ages(最多160字符)的标准。它像寻呼机一样工作,只是用于文本格式,现在的大多数电话都支持SMS。
A key a ect of SMS is that me ages are sent through the mobile network operator"s network i tantly, without the need to manually co ect to an Internet Service Provider—SMS me ages are i tantly delivered while e-mails need to be retrieved from a mail server by the receiver. Also, if the receiver is not online—if the phone is turned off—the SMS me age is stored at the operator and forwarded when the phone is turned back on.
SMS的一个关键特点是,通过无线网络服务器的网络立即发送,不需要手动连接到Internet Service Provider—SMS消息是立即发送,而e-mails需要通过接收器从邮件服务器上接收。同样,如果接收器没有在线—如果电话关闭—SMS消息被储存在服务器中,当电话打开时再转发。 < an cla ='Wnj136'>
On Pocket PC 2002 Phone Edition devices, you can manage SMS me ages much in the same way that you manage e-mail me ages. The SMS Me aging component is integrated with the standard I ox a lication, allowing you to send and receive me ages in the same way you send and receive e-mails. You can even forward and reply to e-mails as SMS me ages, and vice versa.
在Pocket PC 2002 的电话版设备上,你可以和管理e-mail消息一样来管理SMS消息。SMS消息组件是一个完整的标准收件箱应用程序,允许你像收发电子邮件一样,收发SMS消息。你也可以转发和回复SMS消息,像电子邮件一样。
SMS-Enabled A licatio 
SMS-Enabled 应用程序

Many busine  scenarios involve notificatio  of some sort, and SMS is a great way to implement notificatio  for a variety of busine  events. It could be a salesman that notifies a service engineer of a customer in need of service, a service engineer notifying an executive of an important busine  event at the customer, or an executive informing all staff related to the customer about new customer handling routines.
许多商业机构忙碌于对一些通知的选择,SMS是一条极好的实现适应变化多样的商业事件消息通知的途径。它可以让一个销售人员向售后服务工程师转达消费者的需求,一个服务工程师向经理发送一个重要的商务事件,或者一个经理向全体员工发送新的消费者操作办法。
Another interesting use of SMS is to enable mobile commerce (m-commerce), as SMS is often used for handling payment tra actio . To get you started, we will show you how to send SMS me ages from your Pocket PC 2002 Phone Edition device in the following example.
SMS另一个有趣的应用是能够进行移动商务(m-commerce),SMS经常被用来办理付款事物。我们将通过下面的例子,演示如何从你的Pocket PC 2002 Phone Edition设备中发送SMS消息。


Sending SMS Sample
发送SMS示例

A simple form using Microsoft® eMbedded Visual Basic®:
这个例子使用Microsoft® eMbedded Visual Basic® 编写:

Figure 1. SMS Sample a lication
In this form, you can enter an international mobile phone number and a text me age. When you hit the Send button, the me age is sent—as simple as that!
在这个窗体中,你可以输入一个世界范围内的移动电话号码和一条文本消息。当你点击发送按忸,这条消息就被发送出去了—就这么简单。
Code Walkthrough
代码示例

Let"s look at the core of the code for sending SMS me ages. First of all, you need to declare a number of Microsoft Window reg; APIs:
让我们来看发送SMS消息代码的核心部分。首先,你需要声明一系列的Microsoft Window reg; APIs:
·  One for opening the SMS Me aging component
·  One for sending SMS me ages
·  And one for closing the SMS Me aging component:
·  一个函数是打开SMS消息组件
·  一个函数是发送SMS消息


·  另一个函数是关闭SMS消息组件
·  Public Declare Function SmsOpen Lib "SMS" (ByVal ptsMe ageProtocol
·  As String, ByVal dwMe ageModes As Long, ByRef  mshHandle As
·  Long, ByRef phMe ageAvailableEvent As Long) As Long
· 
·  Public Declare Function Sm endMe age Lib "SMS" (ByVal smshHandle


·  As Long, ByVal  msaSMSCAddre  As Long, ByVal
·   msaDestinationAddre  As String, ByVal  tValidityPeriod As
·  Long, ByVal  Data As String, ByVal dwDataSize As Long, ByVal
·   rovider ecificData As String, ByVal dwProvider ecificDataSize
·  As Long, ByVal smsdeDataEncoding As Long, ByVal dwOptio  As Long,


·  ByRef  msmidMe ageID As Long) As Long
· 
·  Public Declare Function SmsClose Lib "SMS" (ByVal smshHandle As
·  Long) As Long

You also need some API co tants declared for the different APIs:
你也需要为这些API声明一些API常量:
Public Co t SMS_MSGTYPE_TEXT = "Microsoft Text SMS Protocol"
Public Co t SMS_MODE_SEND = 2  " Open in send mode
Public Co t SMSDE_GSM = 1  " Use standard GSM
  encoding
Public Co t SMSAT_INTERNATIONAL = 1  " International number
  format
Public Co t  _ME AGE_OPTION_NONE = 0  " No me age optio 
Public Co t  _ME AGE_CLA 0 = 0  " Send immediately
Public Co t  RO_NONE = 0  " No replacements
Public Co t SMS_OPTION_DELIVERY_NONE = 0 " No delivery optio 

The following is the complete code to send an SMS me age:
下面是发送一条SMS消息的完整代码:
Public Sub SendSMS(ByVal Number As String, ByVal Me age As String)
 
  Dim SMSHandle As Long
  Dim SMSEvent As Long
  Dim SMSAddre  As String
  Dim SM rovider As String
 
  " Open SMS Me aging Component
  Call SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, SMSHandle, SMSEvent)
 
  " Set Addre  structure (UDT as string)
  SMSAddre  = LongToBytes(SMSAT_INTERNATIONAL) &am  Number
 
  " Set Provider structure (UDT as string)
  SM rovider = LongToBytes( _ME AGE_OPTION_NONE) &am  _
  LongToBytes( _ME AGE_CLA 0) &am  _
  LongToBytes( RO_NONE)
 
  " Send me age
  If 0 = Sm endMe age(SMSHandle, 0, SMSAddre , 0, Me age, _


  Le (Me age), SM rovider, 12, SMSDE_GSM, _
  SMS_OPTION_DELIVERY_NONE, 0) Then
  MsgBox "Me age sent!", vbInformation, A .Title
  Else
  MsgBox "Could not send me age!", vbCritical, A .Title
  End If
 
  " Close SMS Me aging Component
  Call SmsClose(SMSHandle)
 
End Sub

First, the SMS Me aging component is opened (SmsOpen) and its handle is stored (SMSHandle). This handle is needed to call other SMS APIs.
首先,SMS消息组件要被打开(SmsOpen),并且它的句柄被储存(SMSHandle)。调用其他的SMS API需要使用这个句柄。
A number of structures or UDTs (User Defined Types) need to be prepared for thecall to Sm endMe age. Since eMbedded Visual Basic lacks su ort for UDTs, simple strings are used to emulate a structure.
Sm endMe age调用的结构的成员和UDTs(用户定义类型)需要被初始化,因为eMbedded Visual Basic不支持UDTs,简单的字符串被用来模仿一个结构。
The first is a structure containing the addre  of the SMS me age. The addre  structure contai  an indicator of what kind of number is su lied (in this case an international number) and the number itself.
The next structure contai  various optio  regarding the service provider. The first part of the structure indicates that no  ecial optio  are selected, and the second part indicates that the me age should be sent immediately.


结构中包含的第一个是SMS消息的地址。结构的第一部分指出没有特定的选项被选择,第二部分指出消息将被立刻发送。
The last part states that no replacement should be made.
最后一部分指出没有复位(replacement)存在。
In the call to send the me age (Sm endMe age), the prepared structures are su lied, the me age text and a number of optio . Finally, the handle is closed (SmsClose).
在发送消息的调用中(Sm endMe age),准备好的结构,消息文本和号码的选项将被提供。最后,这个句柄被关闭(SmsClose)。
For a complete example, see this article"s sample code. Also, you can read more about this technique in Antonio Paneiro"s article, UDTs (User Defined Types) with VBCE.
完整的示例请看文章的示例代码。同样,你可以在Antonio Paneiro的文章中得到更多关于这项技术的知识,UDTs (User Defined Types) with VBCE.
Conclusion
结论

SMS is great for small and i tant text notificatio . And with the su ort in Pocket PC 2002 Phone Edition, you will be able to make your a licatio  "SMS aware." With the sample code from this example, you have most of what you need to get going. If you accept that the mobile world, in terms of communication mechanisms and protocols, is more about "both/and" rather than "or/else," you pragmatically can use each option when suitable.SMS对于短小的直接的文本通知来说是非常好的。在Pocket PC 2002 Phone Edition的支持下,你可以创建你的应用程序"SMS aware"。通过和示例相同的代码,你可以得到更多你需要的。如果你接受移动世界,根据通讯机制和协议,"both/and"优于"or/else",你可以根据情况使用合适的选项。




 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· 利用手机模块实现短消息(一) -IT资源在线
· 基于SM 协议的GSM短消息增值业务接口设计与实现
· NOKIA封装的手机开发包SDK文档 -IT资源在线
· 英斯克的网关模拟器 -IT资源在线
· 在PC上通过手机发送短消息 -IT资源在线
· 移动和联通相关开发协议和规范 -IT资源在线
· 使用WinInet编写发送短信程序 -IT资源在线
· SMS基本概念和移动通信系统介绍 -IT资源在线
· J2ME游戏开发学习 - 用setClip分割图片的一些方法
· 各网关厂商API接口 -IT资源在线

热点文章

更多