Windows+Mobile平臺應用與開發(fā)初步_第1頁
Windows+Mobile平臺應用與開發(fā)初步_第2頁
Windows+Mobile平臺應用與開發(fā)初步_第3頁
Windows+Mobile平臺應用與開發(fā)初步_第4頁
Windows+Mobile平臺應用與開發(fā)初步_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1.WindowsMobile平臺應用與開發(fā)初步

注意:原創(chuàng)內容,用于交流,嚴禁商業(yè)用途聯(lián)系:

概述:

詳細分析了WindowsMobile5.0的架構,總結了它的新特性,成功搭建和配置了WindowsMobile5.0開發(fā)環(huán)境,并

在搭建的VisualSludio2005下采用C#語言,開發(fā)實現(xiàn)了手機終端無線信號測試軟件,從而對基于/indowsMobile

平臺的軟件開發(fā)過程有更深入的理解。

1.1WindowsMobile系統(tǒng)概述

WindowsMobile是Microsoft公司針對手持終端開發(fā)的操作平臺,其包括底層操作系統(tǒng)

WindowsCE及上層驅動和應用等,WindowsMobile的幾個版本都內置一系列針對WindowsMobile

開發(fā)用戶應用程序和系統(tǒng)硬件驅動。基于WindowsMobile的移動設備為企業(yè)提供了優(yōu)秀的行業(yè)應

用平臺,它可以提供廣泛的可選硬件、強大的開發(fā)工具和長效的電池使用時間。基于WindowsMobile

的設備讓企業(yè)用戶在外出時仍然可以處理自己的工作,讓用戶能夠通過擴充設備滿足不斷變化的企

業(yè)需求。現(xiàn)在,移動用戶對數據信息訪問的需求增長非常明顯。包括Inlemel在內的新型數據源,

可以通過移動的網絡連接供應更多用戶訪問。

作為一個開放的操作系統(tǒng),WindowsMobile為開發(fā)人員提供了很多便利。開發(fā)人員可以基于

WindowsMobile開發(fā)自己的WindowsMobile應用程序。WindowsMobile5.0徹底消除了Smartphone

和PocketPC以及其他不同的移動設備之間的差距,不管硬件的速度、屏幕分辨率和存儲器容量有

多大差異,WindowsMobile5.0都可以為其方便地進行定制,以適應各種不同的應月場合?;?/p>

WindowsMobile的PocketPC和Smartphone為用戶提供了熟悉并且可以自定義的用戶應用。

1.1.1WindowsMobile家族

WindowsMobile商標如圖3-1所示。

WindowsMobile家族主要包括掌上電腦(PocketPC)、智能手機(SmartPhone)、便攜式娛

樂中心(MediaCenter)三種,掌上計算機又根據是否有電話模塊分為掌上計算機普通版和掌上計

算機電話版。圖3-1

圖3T所示為MicrosoftWindowsMobile商標。

圖3-2所示為WindowsMobile家族及其特性。

(1)掌上計算機(PocketPC)主要的特點是以數據處理為中心,繼承了以前PDA設備的特點,

并能方便地處理郵件,PocketPC還帶有觸摸屏以及可選的完整鍵盤,非常適合商業(yè)應用。

掌上計算機通常使用32MB?128MB內存,使用200MHz?600VHz的CPU,能提供流暢的電影播

放、幻燈片瀏覽、文字處理、游戲等。而且,這些能力還在不斷提高,在WindowsMobile6.0中,

系統(tǒng)支持最高2GB的內存。

(2)掌上計算機電話版(PocketPCPhone)在掌上計算機上增加了手機模塊,并安裝了撥號

應用程序,這樣在掌上計算機上能完成所有手機的功能,包括電話、短信、彩信效勞C

(3)智能手機主要的特點是以語音為中心,以電話功能為主,提供鍵盤和操縱桿輸入,所有

的功能都能優(yōu)化為單手操作。

智能手機和掌上計算機電話版是典型的3G移動終端實例。

(4)便攜式娛樂中心主要的特點是以娛樂為中心,配備專門的多媒體設備。有優(yōu)化的用戶界

面,但沒有觸摸屏,通過指定的功能鍵操作,使用方法和電視操作相似。而且提供視頻輸出能力,

能輕松地與電視、音箱等家用電器進行互聯(lián)。

所有的WindowsMobi所系列都是以移動信息為中心的,提供了MicrosoftOutlookMobile

軟件,通過這些設備可以輕松地收發(fā)郵件、短信以及彩信。對于PocketPC來說,里面還預裝了

WordMobile,ExcelMobile及PowerPointMobile,使得用戶可以在手機上處理工作。而且Windows

Mobi-e設備都支持多媒體,都內置安裝了多媒體播放軟件MediaPlayer以及PocketInternet

Explorer瀏覽器軟件。WindowsMobile上開發(fā)用戶應用,用戶可以自由地安裝或刪除Windows

Mobile上的應用,具備非常好的平臺擴展性。

PocketPCPhoneEditionSmartphone

用途?支持電話功能的個人數字助理?包含數字支持的電話

市場定位?移動商務?移動商務;普通電子消費

屏幕規(guī)格?240x320?176x220

?640x480?320x200

輸入?雙手操作?單手操作

?觸摸屏?鍵盤和搖桿

應用軟件?完全的微軟軟件套件?沒有PocketWord,Excel和Reader

應用場景?MobileOutlook?語音和數字通信

?Webaccess?MobileOutlook

?語音和數字通信?V/ebaccess

圖3-2WindowsMobile家族及其特性

1.1.2WindowsMobile全球市場開展狀況

WindowsMobile掌上計算機在全球市場有著較高的市場占有率,其中在我國占窄率也非常高,

產品覆蓋48個國家的68個運營商,其中有41家移動終端生產廠商。

WindowsMobile具有很好的優(yōu)勢,全球有超過700萬的MicrosoftVisualStudio開發(fā)人員,

有超過38萬的WindowsMobile開發(fā)人員和超過9000個Microsoft合作伙伴。使用WindowsMobile

許可的設備數量每天都在高速增長。

1.1.3WindowsMobile5.0的新特性

WindowsMobile5.0是基于WindowsCE5.1核心的,主要有以下三個特性。

(1)高效率的移動辦公能力,WindowsMobile5.0提供了一些用于提升用戶工作效率的軟件,

如直推E-mail(DirectPush),較好地滿足了用戶特別是移動用戶對即時性信息的需求,通過直

推E-mail,郵件更新信息會先到達手機。另外,MobileWord和MobileExcel也有很大的改善,

可以支持在文檔中添加圖像和圖表,根本上和PC上的Word和Excel功能一致。MobilePowerPoint

雖然暫時不支持編輯功能,但作為查看工具,已經可以滿足用戶會議放映的需求。

(2)硬件方面,主要是指對海量存儲設備的支持和對永久內存存儲的支持。WindowsMobile5.0

的設備可以支持以GB為單位的數據,可以存儲大容量的音頻、視頻數據,并且通過對USB2.0的

支持,使傳輸大容量數據更加快捷和方便。WindowsMobile5.0還采用了新的存儲結構空間的分

配,把用戶的重要數據和資料存儲在ROM里面,這樣即使電池長時間掉電數據也不會喪失。

(3)娛樂方面更加豐富,主要表達為游戲和音樂。WindowsMobile5.0支持DirectX和

DirecLShow,為開發(fā)包括3D在內的游戲提供了平臺支持。這不僅僅是軟件上的支持,還有更多游

戲硬件廠商也支持WindowsMobile5.0,開發(fā)了適合Mobile5.0的3D硬件加速卡。對音樂來說,

WindowsMobile5.0預裝了MediaPlayer10,在MediaPlayer10中音樂壓縮的體積只有不到

MP3格式的一半,因此,WindowsMobile5.0的終端能夠存儲更多歌曲,并且支持和PC機同步媒

體庫。

最后,除了媒體中心之外,其他的WindowsMobile設備都將電話功能作為根本的功能之一。

雖然PocketPC設備分為帶有電話功能和不帶電話功能兩人版本,但對絕大多數用戶(尤其是個人

用戶)來說,他們還是偏愛帶有電話功能的PocketPC設備。而對于Smartphone設備來說,電話

功能更是設備的固有特征。WindowsMobile5.0還在電話功能上進行了極大的改良。除了更快的

連接速度和更高的通話質量外,WindowsMobile5.0還豐富了電話撥號程序的用戶界面,給用戶

帶來了很好的體驗。

1.1.4MicrosoftActiveSync4.5應用程序

為支持WindowsMobi1e5.0的發(fā)布,Microsoft公司也發(fā)布了新版本的Act布eSync,目前最

新版本是ActiveSync4.5,支持USB2.0、支持海量數據的傳輸,并且增強了對多媒體數據的同步

支持。在WindowsMobile5.0的設備應用中,可以利用ActiveSync作以下操作:

(1)同步移動設備和PC機的文件、音樂或者其他數字媒體;

(2)通過PC機的網絡與ExchangeServer進行Otnlook數據的信息同步;

(3)添加或刪除移動設備中的應用程序;

(4)PC機與移動設備共享對方的網絡資源。

ActiveSync的應用非常簡單,用戶可以通過界面友好的同步設置向導來完成終端設備與

ExchangeServer或PC之間的信息同步。在PC端安裝好ActiveSync4.5之后,可以選擇通過串

行電纜、USB電纜、藍牙或者紅外線把移動設備和PC連接起來。連接方法如下:

(1)串行電纜指通過串行電纜將移動設備和PC機的USB端口建立連接;

(2)USB電纜是指通過USB2.0接口將移動設備和PC機的USB端口建立連接;

藍牙和紅外線都是無線連接的方法,兩者不需要更換目纜或適配器,所以在多臺設備之間切換

時,比方法具有一定優(yōu)勢,其中由于藍牙的傳輸速度和相對距離都比紅外有絕對優(yōu)勢,所以藍牙連

接的方式更為普及;

在通過ActiveSync連接后,終端設備可以通過PC端網絡環(huán)境進行網絡訪問。

1.1.5.NETCompactFramework簡介

.NETCompactFramework是.NETFramework的精簡版,它獨立于硬件的環(huán)境,可用于在資源

受限制的計算設備上運行程序,這些設備包括類似PocketPC的個人數字助理(PDA)、移動電話、

機頂盒、自動計算設備和用WindowsMobile.NET操作系統(tǒng)生成的定制嵌入設備。

.NETCompactFramework是.NETFramework類庫的子集,還包含專門為它設計的類。它繼承

了公共語言運行庫和托管代碼執(zhí)行的.NETFramework專功能版的體系結構c

.NETCompactFramework提供以下主要功能:

(1)運行獨立于硬件和操作系統(tǒng)的程序;

(2)支持常見的網絡協(xié)議,并與XMLWebservices無縫連接;

(3)為開發(fā)人員提供一種模型,使他們的應用程序和組件面向各種設備或面向具體某種設

備;

(4)提供設計和優(yōu)化有限系統(tǒng)資源的優(yōu)點;

(5)使用實時編譯獲得生本錢機代碼時的最正確性能;

(6)支持通過ADO.NET訪問SQLMobile。

.NETCompactFramework繼承.NETFramework全功能版的公共語言運行庫體系結構用于運行

托管代碼。它提供與設備的WindowsMobile操作系統(tǒng)的互操作性,應此,用戶能夠訪問本機函數

并將最喜歡的本機組件集成到應用程序中。

.NETCompactFramework立臺結構如圖3-3所示。

VisualStudio

圖3-3.NETCompactFramework平臺結構

1.2VisualStudio2005簡介

WindowsMobile5.0SDK和.NETCompactFramework為移動設備應用程序的開發(fā)提供了根本

的原材料,然而要形成完善、高效的Mobile解決方案,還需要強大的開發(fā)工具的支持。

VisualStudio2005是Microsoft推出的最新的解決方案開發(fā)平臺,它為ASP.NETWeb應用

程序、XMLWebServices,桌面應用程序和智能(移動)設備應用程序的開發(fā)提供了完善的開發(fā)工

具。無論是使用VisualBasic、VisualC++、VisualC#還是VisualJ#語言,都可以在同一個

集成開發(fā)環(huán)境中完成開發(fā)任務,并且還可以開發(fā)跨語言的解決方案。

本文的軟件開發(fā)介紹以及下面的軟件開發(fā)實例都是在VisualStudio2005中文版中開發(fā)的。

1.開發(fā)環(huán)境概況

用戶界面

翻開如下圖的VisualStudio2005開發(fā)環(huán)境。其用戶界面由菜單欄、工具欄、各種各樣的工

具窗口以及工作區(qū)構成。剛開始翻開,會出現(xiàn)初始頁。

圖3~5Visua1Studio2005開發(fā)環(huán)境

2.支持的工程類型

在VisualStudio2005中,可以使用各種語言在各種設備上開發(fā)應用程序,并混,合各種應用

程序形成強大的解決方案。使用的語言不同、針對的目標平臺不同,就形成了各種不同的工程類型。

在一個較高的層次上,VisualStudio2005將應用程序分成兩大類,即客戶端工程和ASP.NET

Web工程??蛻舳斯こ掏ㄟ^依次選擇“文件〃/"新建”/"工程〃菜單項創(chuàng)立,而ASP.NETWeb工

程通過依次選擇“文件〃/“新建〃/“網站〃菜單項來創(chuàng)立。

對于客戶端工程,根據使用的語言不同賀針對的平臺不同,VisualStudio2005還提供了不

同的工程類型以供選擇。依次選擇“文件〃/“新建〃/”工程〃菜單項,彈出“新建工程〃對話框

如圖3-6所示。

圖3-6"新建工程〃對話框

在“新建工程〃對話框左側有一個標記有“工程類型”的樹狀視圖,其中列出了Visual

Stud"2005所支持的所有工程類型。VisualStudio2005所有工程類型按層次進行了劃分,首先

是按照語言的不同進行劃分,接下來是按目標平臺的不同進行劃分。

如果使用C#語言進行開發(fā),需要展開其他語言的VisualC#節(jié)點在其中進行選擇。如果要開

發(fā)桌面應用程序,則選擇其“Windows"子節(jié)點;如果是創(chuàng)立以數據庫操作為主的應用程序,就選

擇“數據庫”字節(jié)點。

本文是針對移動設備的程序開發(fā),移動設備和嵌入式設備在WindowsMobile平臺中被統(tǒng)一稱

為“智能設備〃。VisualStudio2005將這些類型的應用程序放在了智能設備節(jié)點=,在這里還

可以分別選擇不同的目標設備。VisualStudio2005直接支持Smartphone2003和PocketPC2003

應用程序,如果安裝了WindowsMobile5.0SDK,還會出現(xiàn)WindowsCE5.0、WindowsMobile5.0

PocketPC和WindowsMobile5.0Smartphone幾個節(jié)點,用于開發(fā)不同的WindowsMobile5.0

平臺上的應用程序。

在“新建工程〃對話框的右側,還有一個標記有模板的列表視圖,可以根據不同的工程類型選

擇不同的模板。對于各種不同的應用程序,都可以通過不同的配置而使其生成不同的輸出。例如,

對于用VisualC#開發(fā)的WindowsMobile5.0PocketPC應用程序而言,可以通過不同的配置而

生成可執(zhí)行文件(EXE)和類型庫(DLL)OVisualStudio2005將這些常見的配置事先設置好,作

為模板展現(xiàn)在“新建工程〃對話框中。這樣一旦從這里創(chuàng)立了新的工程,則工程已經具有這些設置,

能夠生成特定的輸出內容。

在新建對話框的1、部,可以為工程指定類型和路徑,并可以指定解決方案的名字。

Web應用程序類型的創(chuàng)立類似于客戶端工程的建立過程。這里不做重點。

3.獲取幫助

VisualStudio2005不僅提供了強大的開發(fā)支持功能,還為開發(fā)者提供了非常會面的幫助體

系。VisualStudio2005的幫助文檔集成在MSDNLibrary中,并通過動態(tài)幫助和外部幫助的形式

展現(xiàn)洽開發(fā)者。

1.3測試環(huán)境的搭建和客戶端的部署

1.3.1WindowsMobile5.0開發(fā)環(huán)境搭建

環(huán)境要求與配置:

操作系統(tǒng):Windows2000(SP3以上),或者WindowsXP

開發(fā)環(huán)境:VisualStudio2005和WindowsMobile5.0SDK

司步軟件:ActiveSync4.1及以上

仿真模擬器:WindowsMobile5.0EmulatorImages

相關軟件的先后安裝步臊如下:

a)安裝VisualStudio2005TRM(開發(fā)主工具)

b)安裝ActiveSync4.5DeveloperPreview(微軟的同步軟件可以同時支持PocketPC和

Smartphone與計算機之間通信,用于仿真機數據傳輸測試)

c)安裝WindowsMobile5.0SDKforPocketPC(PocketPC開發(fā)SDK)

d)安裝WindowsMobile5.0EmulatorImages(WindowsMobile5.0中文仿真模擬器)

安裝成功后可以翻開VisualStudio2005編譯器,在“新建工程〃/“職能設備”中找到

uwindowsmobile5.0pocketPC”的新建工程選擇。如圖3To所示。

VisualAudio已安*的■初

,隹密?

3■皮£

.3酒

fVisualBa$K冷|3?

控S

3

“vlwalC?btsRm多0

l二

耳-

卜"Mndgtw?a~

3o一

xl

Ofbct工

PocUtK2003匕的極Ur

Smjrtpl?ne200?

“ndo?\"E£0

EndowsMobile54P

Ia?

VlAldlR

g,f”"plHn2

DAhrogrjmWe?\Microic4tVXudStudio8hvorksp"e工噴?..

3k."pl2on2

圖3-10

在工具的設備仿真管理器中可以找到WindowsMobile5.0中文模擬器。

TMa*I桃2口口5392切

*內二弘Ctrk4t*P

<3夏k-S...

飛田?免in?亭

M:w3彳■日].

代新93小■⑵..CtrkKCtrkB

siazB?rco-

外痔域孚w理||也「

嗎M,

40。:度啟*石小£<|

2qGJQNj)

QotfuxMorCommuM)Editlco

“■WK

ATt-RFC需停工?,工,

ILDsn

Spy

VisualStudio2005CommandPrc<np<

外M二?,£)..

&KZ93?

電注?行?11?浮珠口.;?

耳人》C?D0?0)..

fiSVD-

sg..

圖3-11

重起機器后,在計算機任務欄右下角會發(fā)現(xiàn)灰色的ActiveSync標志“國〃,在計算機硬盤

列表頁面會出現(xiàn)移動設備標志02。

1.3.2測試環(huán)境的搭建

雙擊右下角ActiveSync標志”國,彈出ActiveSync配置窗口,點擊”連接設置〃設置

連接參數。如圖3T2所示。

圖3-12

其中重要設置:

允許USB連接:選中時可以支持真實測試機的測試。

允許連接到以下其中一個端口:當用模擬器測試時,這里一定要選擇“DMA〃。

這臺機器連接到:用模擬器測試這里選擇“單位網絡"。

選擇VisualStudio2005編譯器中的仿真管理器中可以找到WindowsMobile5.0中文模擬

器,右鍵“連接〃,彈出模擬器。如圖3-13所示。

關閉⑤

serosa)

圖3-13

這時點擊“仿真管理器”中的刷新按鈕,查看連接情況,如果成功,選中的模擬器前面會有綠

色箭頭符號”①〃,這時選中點擊“插入底座〃。如圖3T4所示。

圖3-14

稍等片刻,這時任務欄ActiveSync端口符號會變成綠色”回〃,則說明已經連接成功,這

時候雙擊計算機硬盤列表頁面會出現(xiàn)移動設備標志“,會看到模擬器中內部文件結構,

如圖3-15所示。

圖3-15

1.3.3設置移動設備網絡連接

點擊模擬器“開始〃/"設置”/"連接”/”網卡〃,設置網卡信息U

圖3-16

“網卡連接到〃選擇“默認單位設置〃,點擊下面的“NE2000兼容Ethernet驅動程序〃,如

圖3-16所示。

設置局域網連接參數包括IP地址和效勞器DNS,填寫完成后點擊右上角“ok〃后退出,如圖

3T7所示。

ISX

NE2000?各Ethernet菱硼甲

O使用WJ!分63KIP地址

④西tt截IIP蜘t

IP地址:|192.168.1.145|

子網猊瑪:|2S5.255.255.(F]

雙網關:|M168.1.若i]

圖3-17

網卡設置成功后,點擊模擬器“開始〃/“設置〃/“連接〃/“連接〃,設置連接信息。

選擇“連接〃/”高級〃/”選擇網絡〃

圖3-18

在“程序自動連接Intemet時〃和“自動連接專用網絡〃都使用“單位設置〃,點擊右上角

“ok"后保存退出。如圖3T8圻示。

我們可以翻開模擬器自帶的IE瀏覽器,翻開一個網頁如果設置成功則可以連接到Internet

和局域網。如圖3T9所示。

圖3-19

1.3.4客戶端的部署

當在開發(fā)機(通常是桌面計算機)上完成了WindowsMobile應用程序的開發(fā)和測試工作后,

就需要將其部署到實際的設備中去。

.NETCompactFramework是所有基于.NET技術的移動設備應用程序得以運行的基礎,因此,

每一個需要運行.NET程序的移動設備客戶端,都必須安裝.NETCompactFrameworko

如果系統(tǒng)中安裝了.NETFramework2.0SDK或者VisualStudio2005,.NETCompactFramework

的安裝文件就會被部署到桌面計算機上,這個安裝文件的名稱是netcfsetupv2.msi。如果安裝的

是VisualStudio2005,則這人文件位于'ProgramFiles\MicrosoftVisualStudio

8\SDK\v2.0\CompactFramework目錄下。

netcfselupv2.msi是一個運行于桌面計算機的WindowsInstaller數據文件,它可以將.NET

CompactFramework通過ActiveSync部署到移動設備上。當使用VisualStudio2005運行一個

WindowsMobile應用程序是,.NETCompactFramework會被自動地部署到模擬器或是真實設備中。

但對于客戶來說,讓它們安裝VisualStudio2005并通過運行程序來安裝.NETCompactFramework

是不現(xiàn)實的,這時可以使用netcfsctupv2.msi來將.NETCompactFramework部署到設備上。

運行netcfsetupv2.msi,將啟動.NETCompactFramework2.0安裝向導,先移除計算機里的.NET

CompactFramework安裝記錄,然后安裝.NETCompactFrameworko如圖3-20所示。

圖3-20

當設備上安裝了.NETCompactFramework以后,任何使用.NET技術開發(fā)的移動諛備應用程序,

都可以通過直接將可執(zhí)行文件以及相關輔助文件復制到設備中來運行。

程序部署較常用的是CAB安裝包。CAB安裝包小巧,適合于內存有限的移動設備。VisualStudio

2005對CAB安裝包的制作提供了良好的支持,開發(fā)者只需進行一些操作,無需編寫代碼就能完成

安裝包的制作。具體的制作過程將在下一章的軟件開發(fā)中做詳細的介紹。這里不做過多介紹。

2.WindowsMobile5.0平臺的軟件開發(fā)

2.1需求分析概述

移動運營商每年在基站的維護和檢測上花費了很多的人力、物力和財力,檢測無線信號的分布

情況,以便減少無線覆蓋的盲區(qū),實時檢測基站的工作狀況,以便及時修復基站發(fā)生的錯誤,基于

這一需求,這里我們開發(fā)一款軟件,將手機所在位置的無線信號反應給移動運營商,運營商則通過

這些數據,獲得各個區(qū)域的信號強弱并且分析和判斷基站的覆蓋情況和基站的工作情況,本章中,

我們用VisualC#語言在VisualStudio2005開發(fā)環(huán)境里開發(fā)一款基于WindowsMobile5.0的

無線信號檢測軟件。

可以看到,預備知識包括友VisualC首根本語法的了解,了解VisualStudio2005環(huán)境,熟

悉WindowsMobi1e5.0軟件部署的詳細過程,能夠通過MSDNLibrary獲得自己想要的API的信息。

這里,我們的開發(fā)環(huán)境是:VisualStudio2005ActiveSync4.5DeveloperPreviewindowsMobile

5.0SDKforPocketPC^WindowsMobi1e5.0EmulatorImages中文版u

2.2.軟件設計分析

軟件要獲得手機信號的強弱,可以通過Microsoft.WindowsMobile.Status命名空間里的兩個

函數來實現(xiàn),分別是intSystcmState.PhoneSignalStrength和string

SystemState.PhoneOperatorNaneoSystemState.PhoneSignalStrength獲得當前手機所在地的無

線信號強度,表示為int型的百分比(0—100):SystemState.PhoneOperatorName獲得當前手機

的無線運營商的名稱,返回string型。

獲得想要的數據之后,可以通過發(fā)送短信息的方式向運營商發(fā)送出去,短消息的接收方可以是

運營商給出的一個固定的號碼,這里我們用到了Microsoft.WindowsMobile.PocketOutlook.dll

程序集。使用POOM中的SmsAccounl類可以方便地完成短信息的發(fā)送。SmsAccount類提供了一個

名為Send的方法,這個方法的原型如下面的代碼所示:

publicvoidSend(SnsMcssagcmessage);

它接收唯一的一個參數message。message參數的類型是SmsMessage,表示一條SMS消息,當

調用了Send方法后,該消息將被發(fā)送。因此,在發(fā)送短消息之前,還需要構造SmsMessagc的對象。

SmsMessage類提供了三個實例構造器,其中最有用的一個構造器可以構造一個完全可以直接

發(fā)送的SMS消息對象:

pub1icSmsMessago(

stringrecipien:PhoneNumbor,Stringmessage);

其中rccipicntPhoneNumber參數為字符串形式的收信方電話號碼,message參數就是用戶需

要發(fā)送的消息主體了。

以上發(fā)送過程循環(huán)進行,這樣就可以實時發(fā)送,這里可以參加一個timer控件,計時時間間隔

我們假定為20秒。作為提示,可以參加一個Notification,用于發(fā)送成功時的提示。

2.3程序的設計

翻開VisualStudio2005,選擇“文件〃/“新建〃/”工程〃,在工程類型欄里選擇VisualC#

下面的智能設備WindowsMobile5.0forPocketPC,在右側的模板里選

項目美墟⑻:怪套①:國?值

,言無吾言▲VisualStudio已安為的程桁

>-VisualBasic

,VisualC*

星攔制臺底吊性;?

[Windows

.W設備二走性W,1.0)

Office扇巨機£支用運百U.0)

/冒能設備

PocketPC2003

Smartphone2005

??WindowsCE5.0|

[windowsMobile5.0延

[-甲

力手雷二旦售

L式試

t>Visual用

分布式字氏卷W方;S

?NAtTffRfUJ_________▼

圖4-1

擇設備應用程序,工程名稱和解決方案名稱可以任意,這里,名為:AutoSending,如圖4T

所示。點擊確定,出現(xiàn)新建界面,如圖4-2所示。

<?>De.iceApplication2-MicrosoftVisiidlStudio

文件舊泡等目視因。項目@生瓦電涎近?)以相⑷tsic(o)二目工)更試⑤aZlCV)二區(qū)9背助口

就▼畫▼后H@“▼,」▼,▼一?Debug▼AnyCPU▼p

I二1|幣二史卜二期E正釣吁花瞿毀|)一界笆|圖田|■■[■IM;/限-14|率

經二7拜三百官建罌-DeviceApplication2▼口X/Formlcs[iSif]m力之

喝IS困I國國敵

二|鯨云萬衛(wèi)"D」iceApplication2”(1個項目,

/辛De>/iceAppiication2

t>JProperties

t>.H引用

>-EHForml.cs

些Program.es

邑mainMenul

顯示以"T或n$i:涯試X國

3'弋行定義窗口It目遁用汛克瞿豆就出I方詈.吳刃表

就緒

圖4-2

為工程添加對Microsoft.WindowsMobile.PocketOutlook.dl1程序集的引用,并為窗體添加一

個OutloookSession類型的私有域(名為m_ou11ookSession)o

構造如圖4-3所示的用戶界面。

SAutoSmdhg-MicrosoftVisualStudio

文件出浦國煙也)/目?生司£,W?)trS-A.■:Q二月①之試⑤s~(V>七區(qū)?&殳時

承.三.O以J-J&|?,?甲??Release▼AnyCPU▼g,氣雪的火雨口,E

jCHS'widowsMobile5.0Pock,;

MainRxmJ)e$igneix$MalnFormu。MainFomus[0計jprogram心文弁系氏(Auto$en包pcab)JX里qfthF.亨售逵《S▼QX

電架i非

出球:方

SignalMonitor

BasestattxiMjrte:

Information:

basestatoiasSI與,nformabon

abouttheoperatccandsiyd

strengthinthebeatennow.

▼4X

MainFormSystem.\indow$.Fo▼

黯即叵pJ

?mamMenul0timerli^m.notificationOLocation0,26▲

LockedTrue

■暇至萬經更;?曾建昌[斗=晨二三蘭W苴MenumainMenul

MinimizesoxTrue

▼QX0Size240,26s

SkinTrue

Tag2J

TextSignalMonrtc▼

Text

三上。三:S的TT,

火二1隼寸需三

Q中,。,臼。

圖4-4

將窗口的name屬性改為"mainForm”,Text屬性改為"SignalMonitorByXUST〃。參加的

Label1的Text屬性改為"BasestationNumber",Name屬性改為"m」blReceiver”,添加Textl

的name屬性改為"in_txtRcceiver",Text屬性我們假定基站ID為:。添加到俄Labe12的Text

屬性改為“Information:”添加的Text2的Name屬性改為"m_txtMesage〃,Text屬性改為空。

添加Label3作為說明,將其Text屬性改為:NOTE:ThisApplicationwillautomaticallysend

InformationtothebasestationasSMS,informationabouttheoperatorandsignalstrength

inthelocationnow.

添加一個timer控件,name屬性為"timerl”,Interval屬性改為“20000”,即20秒,Enabled

屬性改為“True"。雙擊timerl,編輯代碼如下:

pivalevoidtiinei1Tick(objectsendei,EvwiAigse)

(

timerl.Interval=20000;

intst;

stringstr;

st-SystcmStatc.PhoncSigna1Strengths

str=Convert.ToString(st);

m_txtMesage.lext=Systemstate.EhoneOperatorName;

m_txtMesage.Text+=":";

m_txtMesage.Text+=str;

//構造短信息對象

SmsMessagemsg=newSmsMessage(

m_txtReceiver.Text.

m_txtMesage.Text);

//使用OutlookScssion中的SMS帳戶進行發(fā)送,SMSAccount類提供的Send方法

moutlookSession.SmsAccount.Send(msg):

〃修改消息文本框,顯示發(fā)送成功,并且準備填寫下一條記錄

m_txtMesage.Text="Sent";

//顯示氣球提示Notification

m_notification.Caption="Information";

mnotification.Text="PhoneSignalStrengthhasbeenSenttoBaseStation.Thanks!-----byXUST":

m_notification.InitialDuration=3,

m_notification.Visible=true;〃如若設置為不顯示氣球提示可改為false

)

catch(Exceptionex)

(

MessageBox.Show(

String.Format("Error:10}",ex.Message),

"Send",

McssageBoxButtons.OK,

MessageBoxIcon.Hand,

MessageBoxDefau1tButton.Buttonl);

}

)

添加的Notification控件name為am_notification*,其他屬性在上面的代碼里已經設置。

MainForm,cs文件的完整代碼如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingMicrosoft.WindowsMobile.Status;

usingMicrosoft.WindowsMobile.EocketUutlook;

namespaceSendingSms

(

publicpartialclassMainForm:Form

(

OutlookSessionm_outlookSession;

publicMainEormO

(

InitializeComponent();

m_outlookSession=newOutlookSession();

m_txtReceiver.Text="";

)

privatevoidtimcrl_Tick(objectsender,EventArgsc)

(

try

(

timerl.Interval=20000:

intst;

stringstr;

st=SystemState.PhoneSignalStrength;

str=Convert.ToString(st);

m_txtMcsago.Toxt=SystomStato.PhonoOperatorNamo;

mIxlMesage.Text+=":";

m_txtMesage.Text+=str;

//構造短信息對象

SmsMessagemsg=newSmsMessage(

m_txtRcccivcr.Text,

mtxtMesage.Text);

〃使用OutlookSession中的SMS帳戶進行發(fā)送.SMSAccuunt類提供的Send方法

m_outlookSession.SmsAccount.Send(msg);

〃修改消息文本框,顯示發(fā)送成功,并且準備填寫下一條記錄

mtxtMesage.Text="Sent";

〃顯示氣球提示Notification

m_notification.Caption="Information";

m_notification.Text="PhoneSignalStrengthhasteenSenttoBaseStation.Thanks!—byXUST";

mnotification.InitialDuration=3;

mnotification.Visible=true;〃如若設置為不顯示氣球提示可改為「al

catch(Exceptionex)

(

McssageBox.Show(

String.Format("Error:1.0r",ex.Message),

"Send",

MessageBoxButtons.OK,

McssageBoxIcon.Hand,

MessageBoxDefriul1Bu1ton.Button1);

)

)

)

)

i)于SystemState.PhoneSignalStrength返回的是一個int型的數據,而短信息發(fā)送時只能接

收到String類型,這里用Convert.ToString(int)將int型轉換成string類型的。

程序中用了PocketOutlook和SystemStale空間的函數,所以要添加如下兩個程序集的引用:

Microsotf.WindowsMobile.PocketOutlook.dll和Microsoft.WindowsMobile.Status,dll。引用如

圖4-5所示

,潘引用

QMicrosoft.\indowsCE.Forms

?口Microsoft.VindowsMobile

?0Microsoft.VindowsMobile.PocketOutlook

Microsoft'.VindowsMobile.Stctus

-omscorlib

??…QSystem

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論