一個沒什麼用的 Windows Mobile 應用程式 - imAgent
(2016.4 修改, 移除無用的連結)
1、前言
根據統計資料顯示,全球手機市場可分為兩大部分:一是占有率約為30%,可上網、可安裝第三方軟體的Smartphone(如:Windows Mobile、Symbian、Android、iPhone等);而其餘的70%為不可上網、不能隨意安裝卸載應用軟體的Feature Phone。
隨著科技的進步,Smartphone的運算能力越來越強,但其大部分的時間皆是處於待機、沒有運行應用軟體的狀態,這無疑是白白浪費了一台要價四、五百美元以上的硬體資源。另一方面,Feature Phone則因為沒有聯網功能,除了Voice通話之外,無法利用『Data』與外界溝通,在使用上常常感到功能不足。
因此,針對上述問題,我們提出一個新的想法:將Smartphone視為一台小Server,而Feature Phone則視為Client端;Smartphone提供運算資源與服務給Feature Phone使用。至於兩者之間的資料傳輸,則利用每隻手機皆具有的SMS簡訊功能來當作媒介。我們希望如此一來,能讓Smartphone的運算資源可以盡到最大的利用價值;同時也可以幫助持有Feature Phone的使用者,能做到更多的事情。
SMS (Short Messaging Service) 簡訊服務主要的目的係可以在手機間傳送簡短的文字訊息。對於某些使用者族群(如學生、年輕人)而言,使用簡訊的頻率有時甚至大於打電話,可謂是手機最重要的應用。雖然使用SMS有成本上的考量及不能保證即時傳遞的缺點,但卻能在不依賴任何第三方伺服器的條件下,就可以在Feature Phone及Smartphone間達成資料訊息溝通的要求。
目前主流看法認為:未來手機將會普遍採用雲端運算(Cloud Computing),就是將程式儲存於伺服器端,並由伺服器負責執行後,經由網路把運算結果傳回手機。如果把這種方式稱為『以下連上』,我們更希望可以看到由眾多行動裝置相互連結的端對端『橫向發展』。
我們進一步將此種由Smartphone作為Server、提供服務的概念擴展為兩類:一是由使用者主動在Feature Phone上發出SMS去使用Smartphone的被動服務【F -> S】;另一類則是在一台Smartphone上由應用軟體自動傳輸SMS來聯繫另外一台Smartphone上的應用服務【S <-> S】。
項目 |
服務類別 |
說明 |
SMS Mail |
F -> S |
1.由Feature Phone 發出SMS即能將內容傳送至特定的Email信箱 2.在PC、PDA上發出Email 即能轉換為SMS傳送至Feature Phone |
SMS Remote Control |
F -> S |
利用Feature Phone發出SMS傳送控制字串至Smartphone,即能在背景控制Smartphone並可利用SMS或Email傳回相關訊息。例如:傳回使用者資料、IP Address及通訊錄內容等。 |
SMS Survey |
F -> S |
1.在Smartphone上利用提供的工具發送大量的問卷簡訊 2.在Smartphone上利用工具製作自動回覆簡訊的格式 3. Feature Phone的使用者可利用SMS回覆問卷內容 4.於Smartphone可以瀏覽問卷回覆狀況、並自動統計、輸出報表 |
SMS Home Page |
F -> S |
此功能的主要目的是在Windows Mobile上製作樹狀結構般的目錄選單,其中目錄選項可分為簡單的訊息回覆、巢狀子目錄、RSS自動擷取產生項目及執行其他函數的功能。Feature Phone的使用者可利用SMS在樹狀目錄中瀏覽,並取得相關訊息。 |
SMS Location |
F - > S S <-> S |
1. Feature Phone可利用SMS傳送『目前地址』即能在Smartphone上用 Map 秀出 2.若兩端皆為Smartphone並具備GPS,即能定時利用SMS相互追蹤 |
SMS My Status |
F - > S S <-> S |
1. Feature Phone的使用者可利用SMS查詢Smartphone上目前及未來的行事曆 2. 若兩端皆為Smartphone, 則可利用SMS邀約對方並自動設定行事曆 |
然而,在實作此系統的中間階段,我們發現一個問題:這些應用服務皆是一個個小小的程式,所以必須要有某種方式來統整它們。因此,我們採取動態Plug In 的架構來建構系統,並利用一主程式來Host這些服務。
更進一步的發想: 目前,幾乎所有人都在使用行動電話;可以預估在未來,或許會有很多人沒有PC、Notebook,但他們會持有一台Smartphone來當成個人的資訊處理工具、行動化的秘書。這時候如果在Smartphone上有個代理人 【Agent】程式,則能自動化處理掉許多繁文褥節、瑣碎的事。Agent的主要功能是與外界溝通,然後提供服務給其他人。當下有許多人使用即時通訊軟體(Instant Messenger,例如:Windows Live Messenger)來相互溝通;如果我們可以提供一個在Smartphone上能自動回覆使用者IM詢問的Agent,這或許可以當作實現『Smartphone上泛用Agent』的第一步。
因此,我們實作了一個以流程為基礎的IM對話引擎;除了可以提供一般簡單對話功能之外,還能同時監控多位不同使用者的即時對話狀況。由於對話的過程是一問一答的形式,所以之前所提到做成Plug In架構的那些SMS 服務小程式剛好成為此Agent可以提供的Service!
圖1-4 Agent Flow Designer
綜合以上所言:我們提供了一個 Windows Mobile上imAgent的小平台. Feature Phone的使用者可以透過SMS來使用Smartphone所提供的服務;PC或PDA的用戶可以透過MSN Messenger來存取WM手機上的功能。藉由可擴充的架構,能將不同的Plug In 加入系統。
2、系統安裝需求
硬體要求:須具備支援下列任何一種作業系統之智慧型手機
l Microsoft Windows Mobile® 5.0 for Pocket PC
l Microsoft Windows Mobile 6.0 Professional(or later)
軟體要求:須事先安裝檔案:
l Microsoft ActiveSync® 4.0(or later)
l Microsoft .NET Compact Framework 3.5
l Microsoft SQL Server Compact Edition 3.5 (SQL Server CE)
3、簡易操作手冊
3-1 主畫面
打開imAgent主程式之後,即可看見主畫面包含3個頁籤,分別為【Services】、【IM】與【SMS】
【Services】頁籤主要列出目前系統所提供的服務,點選列表中的項目即可進入個別Plug in功能畫面。在列表項目右側的小圖示 表示目前此項目關閉接受來源資料,按下此按鈕,則會接受來源資料。而 表示此項目正在接受外界傳來之訊息,按下此按鈕,則會關閉接受來源資料。 則表示個別項目有異常消息顯示,點選按鈕會秀出相關訊息。
【SMS】頁籤則提供以對話的形式瀏覽此手機SMS歷史傳輸資料;使用者亦可利用此介面來發送SMS:
至於【IM】頁籤功能將於之後章節再行介紹。
3-2 SMS Mail
1. 由Feature Phone 發出SMS即能將內容傳送至特定的Email信箱
格式: email:[email Address] [Content]
例如: email:ren@imobilemind.com This is a test. From SMS!
2. 在PC、PDA上發出Email 即能轉換為SMS傳送至Feature Phone
格式: sms:[phone number] [Content]
例如: sms:0918123456 這是中文測試. 來自Outlook.
3-3 SMS Remote Control [影片]
本功能係利用Feature Phone發出SMS傳送控制字串至Smartphone,如此一來,即能在遠端控制Smartphone並可利用SMS或email傳回相關訊息。
格式: rc#[command]#[mobile number or email]#password
指令command |
功能 |
callback |
自動回撥電話 |
getowner (egetowner) |
傳回使用者資料 |
reset |
Soft Reset |
alarm |
播放預設聲音檔 |
getinfo |
傳回 IMSI 和 IMEI |
message |
秀出訊息 |
phonebook (ephonebook) |
傳回通訊錄內容 |
delsim |
刪除通訊錄內容 |
gip |
傳回PDA的IP 位置 |
範例:
rc#go – 利用簡訊傳回使用者訊息, 沒有使用密碼
rc# ephonebook##123 – 利用預設email帳號傳回通訊錄, 以123為密碼
rc# getinfo#0918123456 – 以簡訊傳回IMSI 和 IMEI值至0918123456, 沒有使用密碼
rc# egetowner#tester@host.com#123 – 傳回使用者訊息至tester的email, 以123為密碼
3-4 SMS Survey
我們以製作一個SMS樂透投注系統為例:
1. 首先點選選單【Options】【New / Properties】即出現設定視窗,在輸入欄【Prefix】處填入 lottery
2. 點選【Format】頁籤,依序加入七個 integer 型別的Field:【L1】~【L6】、【Count】,分別表示六個投注號碼及金額
3. 點選【Question】頁籤,可以選擇性的群發簡訊給使用者
4. 點選【Reply】頁籤,可以選擇性的用SMS 回傳投注成功消息。並可利用預設的Tag加入投注者的相關資料與隨機認證碼
5. 按下【OK】, 系統即可接受大量SMS投注
6. 之後,可點選選單【Options】【Show Results】和【Options】【Show Results(Chart)】觀看結果
7. 亦可利用【Options】【Export Data to Excel】輸出報表
3-5 SMS Home Page
本功能的主要目的是在Windows Mobile上製作樹狀結構般的目錄選單,其中目錄選項可分為簡單的訊息回覆、巢狀子目錄、RSS自動擷取產生項目及執行其他函數的功能。Feature Phone的使用者可利用SMS在樹狀目錄中瀏覽,並取得相關訊息。
主畫面分為三個頁籤:【Group setting】、【Group Test】和【Session】
在本功能裡所提到的『Group』是指一些聯絡人的集合,它們彼此共用一個Page檔案。每個聯絡人有各自的使用狀態,不會彼此干擾。系統預設兩個群組:一是『Default』,表示已經存在本機聯絡人裡,但沒有加入其他群組的使用者。另一是『Unknown』群組,表示尚未加入聯絡人清單的陌生人。我們可以按【New Group】新增不同的群組,而後利用【Contacts…】加入成員。
製作Page內容的方式有兩種:一是只有一層選單的Simple Page Designer:
另一種是功能完整、Sub Menu可以無限制層級的Standard Page Designer:
製作完成後,可用【Group Test】頁籤模擬外來SMS作測試:
3-6 SMS Location
本項目提供以下功能:
1. Feature Phone可利用SMS傳送『目前地址』(如:台北市…)即能在Windows Mobile上用Map秀出
2. 若兩端皆為Windows Mobile手機,並具備GPS,則可定時發送SMS追蹤位置
主畫面為四個頁籤:【Send】、【Map】、【History】和【Geocoder】。在【Send】頁籤中,只要勾選【GPS】選項,就能啟動GPS。點選『Contact』及勾選【Auto Send】即能定時經由SMS傳遞經緯度供另一台裝有本程式的手機追縱位置。【History】頁籤為歷史紀錄,顯示所有接受之經緯度座標,點選項目可以在地圖顯示。
3-7 SMS My Status
本項目提供使用者下列功能:
1. Feature Phone的使用者可利用SMS查詢Windows Mobile 手機上目前及未來的行事曆
查詢目前狀態 |
格式:status:now |
範例:status:now |
查詢行事曆 |
格式:status:yyyyMMddHHmm |
範例:status:200909161525 |
2. 若兩端皆為Windows Mobile手機, 則可利用SMS邀約對方並自動設定行事曆
點選【Appointment Over SMS】頁籤,選取欲邀約的行程,系統會帶出填寫邀請對象之視窗。
待傳送後,若對方手機收到此SMS邀約訊息時,則會跳出【Appointment Request】視窗。
若接受邀約,系統會自動將此行程加入對方手機行事曆。
3-8 Messenger Agent
本功能的主要目的是在Windows Mobile上提供一個相容於MSN Messenger的對話代理人系統;透過PC上之 Agent Flow Designer (圖1-4) 的協助,設計對話流程。系統畫面包含四個頁籤:【Account】、【Buddy】、【Conversation】及【Misc】。首先,在【Account】裡填入帳號及密碼以便登錄IM伺服器。待登錄成功後,畫面會自動跳到【Buddy】頁籤。使用者可以根據每位好友設定一個預設的Agent File;一旦該好友有任何訊息傳輸進來,系統會立即執行所設定的檔案。
系統會同時監控多位好友的對話過程;詳細的內容,可以在imAgent主畫面裡的【IM】頁籤看到。使用者可在任何時刻點擊【Talk】按鈕以介入對話,此時畫面會轉至【Conversation】頁籤。
您可以輸入文字後點擊【Send】以傳送對話;或是按下【Agent】鈕以控制Agent File的執行。
畫面會出現一個標題為Agent的小對話窗;其中【Reset】是重啟Agent File、而【Pause】是暫停。【New】則可以重新選擇一個Agent File 來自動執行對話。
在【Misc】頁籤有個Agent Session的選項,它的作用是保存當下對話的狀態。一旦雙方停止對話超過該時間,接下來若對方有新訊息傳入,則Agent會重新從頭執行起。