相信很多使用索愛手機(jī)的朋友都使用過MobileStudioXP,floAt's Mobile Agent這樣的PC端同步軟件,這些軟件最大的好處就是可以通過紅外或藍(lán)牙在PC上控制手機(jī),實現(xiàn)短信收發(fā)、電話簿同步等功能。這樣在你身邊有電腦時,特別是對那些短信狂人來說,將極大的解放手指!也是對手機(jī)現(xiàn)有功能強有力的擴(kuò)展。你想知道這些軟件是如何開發(fā)出來的嗎?好,下面聽我娓娓道來……
要開發(fā)這種程序首先要具備硬件條件。PC端要有紅外或藍(lán)牙適配器。(絕大多數(shù)的筆記本都內(nèi)置紅外,高端型號也有內(nèi)置藍(lán)牙,方便很多) 手機(jī)自不必說,索愛高端型號都有紅外和藍(lán)牙。打開手機(jī)的紅外或藍(lán)牙,在合時的范圍內(nèi)PC就會發(fā)現(xiàn)手機(jī),windows右下角的系統(tǒng)托盤里就會出現(xiàn)紅外或藍(lán)牙的圖標(biāo)。因為我的筆記本只有紅外接口,所以以下均以紅外為例。
接下來要在你的程序和手機(jī)之間建立紅外連接了。類似于建立socket連接,我使用基于winsock的ircomm方式實現(xiàn)的紅外連接。這一點非常關(guān)鍵,因為微軟在MSDN里強烈推薦使用winsock的irda方式開發(fā)紅外程序,大量的文檔和例子都在強調(diào)這種方式。但現(xiàn)在的手機(jī)基本都屬于non-windows設(shè)備,必須使用傳統(tǒng)ircomm方式。
如果開發(fā)基于藍(lán)牙的程序反而更簡單,因為現(xiàn)在藍(lán)牙在windows里屬于串口設(shè)備(一般默認(rèn)為COM4),對藍(lán)牙編程就等于對串口編程,而串口通信的源代碼甚至控件有很多。
建立連接之后程序就可以和手機(jī)通信,收發(fā)AT指令了。現(xiàn)在市場上的大多數(shù)手機(jī)均支持類似于Modem控制的GSM AT指令集,該指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,其中包含了對SMS(Short Message Service)的控制。
舉個例子:當(dāng)通過紅外向手機(jī)發(fā)送AT指令‘AT+CMGL=4’后,手機(jī)就會通過紅外發(fā)給你存儲的所有短信。
索愛官方網(wǎng)站上的開發(fā)文檔非常詳盡。不但有索愛所有型號手機(jī)的白皮書,還有專門介紹AT指令的詳細(xì)文檔:
Sony EriCSSon AT Commands Online Reference (Nov) Nov 19, 2003
Developers' Guidelines with an AT Commands Online Reference for SonyEricsson phones (covers T68i, T300/T302/T306, T310/T312/T316,T610/T616/T618, Z600/Z608, T628/T630, P800/P802 and P900/P908).
Download Doc (Size 2.1 Mb)
里面分門別類介紹了索愛手機(jī)支持的全部AT指令,近30個種類,300多條,涵蓋了手機(jī)的大部分功能。
介紹到這里技術(shù)上的問題也就講完了,只要是會串口或winsock編程的朋友都可以實現(xiàn)類似的程序。接下來的工作就是要在底層通信的基礎(chǔ)上構(gòu)建盡量人性化的用戶界面,也是最煩最耗時間的步驟!
下面給大家看看我做的程序,暫定名為MyPhone:
程序界面基本模仿Foxmail和QQ的消息管理器
1.可以像Foxmail那樣,在“收件箱”“發(fā)件箱”中瀏覽短信;
2.可以像QQ消息管理器那樣,按人名瀏覽收發(fā)的短信;
3.新建短信可以直接通過手機(jī)發(fā)送,也可以保存到手機(jī)的“未發(fā)信息”里。
右上角的小窗口在PC和手機(jī)通過紅外進(jìn)行通信時彈出,里面顯示的是PC和手機(jī)之間的通信內(nèi)容:圖中顯示的是一個向手機(jī)“未發(fā)信息”里寫入一條短信的通信過程
1.向手機(jī)發(fā)送指令“AT”,這是在讓手機(jī)做好準(zhǔn)備,手機(jī)返回“OK”;
2.向手機(jī)發(fā)送指令“AT+CMPS="ME","ME"”,這是設(shè)置手機(jī)存儲短信的內(nèi)存,這里指定使用手機(jī)內(nèi)存而不是sim卡內(nèi)存,手機(jī)返回設(shè)置結(jié)果,三個工作內(nèi)存全為手機(jī)內(nèi)存,一共70個,已使用30個,并返回“OK”;
3.向手機(jī)發(fā)送指令“AT+CMGW=154",這是告訴手機(jī)俺要寫入短信了,長度不包括頭信息為152個字節(jié),然后手機(jī)返回“<”,這時再向手機(jī)發(fā)送真正的短信PDU報文,就是后面那些16進(jìn)制編碼;寫入成功手機(jī)返回剛寫入的內(nèi)存序號“9”,并返回“OK”。
現(xiàn)在程序還不具備發(fā)送超長短信、同步電話本等其他功能,但我希望能盡快將這個程序做成一個免費軟件,給大家更多一種選擇!
新聞熱點
疑難解答
圖片精選