要開發(fā)這種程序首先要具備硬件條件。PC端要有紅外或藍牙適配器。(絕大多數的筆記本都內置紅外,高端型號也有內置藍牙,方便很多) 手機自不必說,索愛高端型號都有紅外和藍牙。打開手機的紅外或藍牙,在合時的范圍內PC就會發(fā)現手機,windows右下角的系統(tǒng)托盤里就會出現紅外或藍牙的圖標。因為我的筆記本只有紅外接口,所以以下均以紅外為例。
接下來要在你的程序和手機之間建立紅外連接了。類似于建立socket連接,我使用基于winsock的ircomm方式實現的紅外連接。這一點非常關鍵,因為微軟在MSDN里強烈推薦使用winsock的irda方式開發(fā)紅外程序,大量的文檔和例子都在強調這種方式。但現在的手機基本都屬于non-windows設備,必須使用傳統(tǒng)ircomm方式。
如果開發(fā)基于藍牙的程序反而更簡單,因為現在藍牙在windows里屬于串口設備(一般默認為COM4),對藍牙編程就等于對串口編程,而串口通信的源代碼甚至控件有很多。
建立連接之后程序就可以和手機通信,收發(fā)AT指令了?,F在市場上的大多數手機均支持類似于Modem控制的GSM AT指令集,該指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,其中包含了對SMS(Short Message Service)的控制。
舉個例子:當通過紅外向手機發(fā)送AT指令‘AT+CMGL=4’后,手機就會通過紅外發(fā)給你存儲的所有短信。
索愛官方網站上的開發(fā)文檔非常詳盡。不但有索愛所有型號手機的白皮書,還有專門介紹AT指令的詳細文檔:
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)
里面分門別類介紹了索愛手機支持的全部AT指令,近30個種類,300多條,涵蓋了手機的大部分功能。
介紹到這里技術上的問題也就講完了,只要是會串口或winsock編程的朋友都可以實現類似的程序。接下來的工作就是要在底層通信的基礎上構建盡量人性化的用戶界面,也是最煩最耗時間的步驟!
下面給大家看看我做的程序,暫定名為MyPhone:
程序界面基本模仿Foxmail和QQ的消息管理器
1.可以像Foxmail那樣,在“收件箱”“發(fā)件箱”中瀏覽短信;
2.可以像QQ消息管理器那樣,按人名瀏覽收發(fā)的短信;
3.新建短信可以直接通過手機發(fā)送,也可以保存到手機的“未發(fā)信息”里。
右上角的小窗口在PC和手機通過紅外進行通信時彈出,里面顯示的是PC和手機之間的通信內容:圖中顯示的是一個向手機“未發(fā)信息”里寫入一條短信的通信過程
1.向手機發(fā)送指令“AT”,這是在讓手機做好準備,手機返回“OK”;
2.向手機發(fā)送指令“AT+CMPS="ME","ME"”,這是設置手機存儲短信的內存,這里指定使用手機內存而不是sim卡內存,手機返回設置結果,三個工作內存全為手機內存,一共70個,已使用30個,并返回“OK”;
3.向手機發(fā)送指令“AT+CMGW=154",這是告訴手機俺要寫入短信了,長度不包括頭信息為152個字節(jié),然后手機返回“<”,這時再向手機發(fā)送真正的短信PDU報文,就是后面那些16進制編碼;寫入成功手機返回剛寫入的內存序號“9”,并返回“OK”。
現在程序還不具備發(fā)送超長短信、同步電話本等其他功能,但我希望能盡快將這個程序做成一個免費軟件,給大家更多一種選擇!