Tracking App 管理者及使用者操作手冊
此 Tracking App 連結至交大 MapTalk,一般使用者請參閱每個章節的第一部 份,若您欲將Tracking App 連結至自己專屬的 MapTalk,請參閱每個章節的第 二部分。
第一章 Tracking App 安裝流程
軟體系統需求
Android 作業系統 8.0 以上
MapTalk
本章第一部分敘述一般使用者的安裝程序。第二部分敘述開發管理者的安 裝程序。
第一部分:一般使用者安裝
此部分包括兩步驟,請依照順序執行。
Step 1. 在手機點擊以下連結或掃描 QR Code 下載可安裝的 APK (Android application package) 檔案
https://github.com/IoTtalk/IoTtalkAndroidApp/raw/master/quick _install/IoTtalkApp-1080310.apk
Step 2. 下載成功後點擊安裝
點擊手機內的APK 檔案進入安裝提示畫面 (Figure 1 (a)),再點擊
“INSTALL” (Figure 1 (1)) 開始安裝,待安裝進行 (Figure 1 (b)) 直至
完成畫面出現 (Figure 1 (c))表示安裝成功。接下來請參閱第二章第一 部份的操作流程。
(a) Installation prompt (b) Installation in progress (c) Installation done Figure 1. IoTtalk App installation screenshots
第二部分:開發管理者安裝
此部分包括四步驟,請依照順序執行。
Step 1. 請由以下網址下載 IoTtalk App source code
https://github.com/IoTtalk/IoTtalkAndroidApp
Step 2. 用編輯器修改 IoTtalkAndroidApp/app/src/main/java/tw/org/cic /tracking_mobile/TrackingConfig.java
1. 設定Tracking 欲連結的 IoTtalk Server
情境一:secure connection (https):static final String trackingHost =
"https://IOTTALK_SERVER_DOMAIN_NAME";
例如:
static final String trackingHost = "https://map.iottalk.tw";
情境二:no secure connection (http):static final String trackingHost =
"http://IOTTALK_SERVER_IP:IOTTALK_SERVER_PORT";
例如:
static final String trackingHost = "http://140.113.111.111:9999";
2. 設定Tracking 欲連結的 Map
情境一:secure connection (https):
static final String mapURL =
"https://YOUR_MAP_DOMAIN_NAME/map/";
例如:
static final String mapURL = "https://map.iottalk.tw/map/";
情境二:no secure connection (http):
static final String mapURL =
"http://YOUR_MAP_IP:YOUR_MAP_SERVER_PORT";
例如:
static final String mapURL = "http://140.113.111.111:8866";
Step 3. 使用 Android Studio 或 Eclipse 等軟體打包成 APK (Android application package)檔案,供一般使用者下載安裝
以Android Studio 軟體為例:
匯入IoTtalk App source codeFile Open IoTtalk App source code OK
打包成APKBuild Build APK(s)
至以下路徑取得APK 檔案IoTtalkAndroidApp/app/build/outputs/apk/debug/app-debug.apk
Step 4. 將 APK 檔案傳輸至手機後點擊安裝
點擊手機內的APK 檔案進入安裝提示畫面 (Figure 1 (a)),再點擊
“INSTALL” (Figure 1 (1)) 開始安裝,待安裝進行 (Figure 1 (b)) 直至 完成畫面出現 (Figure 1 (c))表示安裝成功。接下來請參閱第二章第二 部份的操作流程。
第二章 Tracking App 操作流程
本章第一部分敘述一般使用者的操作程序。第二部分敘述開發管理者的操作 程序。
第一部分:一般使用者操作
此部分包括五個步驟,其中Step 1.~3 請依照順序執行,Step 4.~5 可自行調整順 序。
Step 1. 開啟 Tracking App 頁面
安裝完畢後至手機桌面點擊IoTtalk App icon (Figure 2 (a)),進入 IoTtalk App 首頁 (Figure 2 (b)) 後按下“TRACKING”按鈕(Figure 2 (1)) 開啟Tracking App 頁面 (Figure 2 (c))。
(a) IoTtalk App icon (b) IoTtalk App Index page (c) Tracking App page Figure 2. Screenshots of using IoTtalk App
Step 2. 在 Tracking App 頁面進行設定
1. 設定Tracking 名字
Name (Figure 2 (2)) 欄位要填入的是使用 Tracking 服務時在地圖上代表 自己的名稱,由使用者自行輸入命名於編輯區(Figure 2 (3))。
2. 設定Tracking 時間
Time (Figure 2 (4)) 欄位要選擇的是使用 Tracking 服務的持續時間,可 於下拉式選單中選擇不限時或是使用10~60 分鐘不等(Figure 2 (5))。
Step 3. 啟用 Tracking 服務
1. 點擊“Start”按鈕 (Figure 2 (6)) 以啟用 Tracking 服務,此時系統會先檢 查以下事項:
網路連線
Tracking 服務需使用網路開啟 Map GUI 並上傳裝置的位置,因此 如果發現無網路連接則會出現網路連線請求對話框(Figure 3 (a)),
請按下“OPEN NETWORK”按鈕 (Figure 3 (1))前往網路設定頁面 開啟可用的網路。
位置存取權限
Tracking 服務最主要的功能即是取得使用者的位置,因此初次使 用此服務時,系統會詢問是否同意此App 存取手機的位置 (Figure 3 (b)),請按下“ALLOW”按鈕 (Figure 3 (2))以確保 Tracking 服務 可以順利進行,同意一次過後此對話框將不再出現。
裝置定位
Tracking 服務需持續取得裝置的所在位置,因此在使用者沒有打 開手機定位的情況下,系統會出現開啟定位請求的對話框 (Figure 3 (c)),這時點擊“OK”按鈕 (Figure 3 (3))即會開啟手機定位,讓 Tracking 服務可以取得此裝置的現在位置。
(a) Network access request (b)Location access request (c)Turn on location request Figure 3. Screenshots of Tracking permission request dialog box
2. 通過檢查後Tracking 服務便開始運行,此時“Start”按鈕 (Figure 2 (6)) 的字樣會變為“Stop”,並在 5 秒內發送 Android 系統通知 (Figure 4),
提醒使用者此App 正在背景執行。另外,若使用者在 Time (Figure 2 (4)) 欄位有選擇 Tracking 服務的持續時間,則會再發送 Tracking
Remaining Time 的通知 () 讓使用者可以隨時知道此服務剩下多少時間。
緊接著,Tracking 服務會透過瀏覽器自動開啟 Map GUI。
Figure 4. Android system notification
Figure 5. Tracking remaining time notification
Step 4. 在 Map GUI 上查看 HumanTracking 應用
1. 當Tracking 服務開始運行後,Map device 會經由 MapTalk 不斷接收使 用者的位置 (Figure 12),等到 Map GUI 透過瀏覽器自動開啟時,Map 會自動將代表使用者所在位置的cyber object 定位於地圖中央 (Figure 6 (1)),且 cyber object 中會顯示使用者的 ID,若點擊該 cyber object 則會 出現dialog box (Figure 6 (2))。
(a) Dialog box (b) History trajectory (c) Offline display Figure 6. HumanTracking cyber objects screenshot
2. 其中dialog box 的內容可分為以下三個部分:
(1) Name (Figure 6 (3))
此內容代表該使用者的名字,與使用者在Step 2.時於 Name 欄位 所輸入的名字一致。
(2) Update Time (Figure 6 (4))
顯示此cyber object 最後一次更新的時間。
(3) History (Figure 6 (5))
當使用者點擊此按鈕時會出現時間長度選擇視窗( Figure 7),選擇 後可追蹤使用者的歷史軌跡 (Figure 6 (6)),且 cyber object 中的 ID 會與歷史軌跡的顏色一致 (Figure 6 (7))。
Figure 7. History time selection dialog box
3. 在滑動地圖的過程當中,若看不見代表自己所在位置的cyber object,
則可以點擊定位按鈕 (Figure 6 (8))使得該 cyber object 回到地圖中央以 便查看。
4. 另外,若想查看其他使用者的位置,可點擊Map GUI 左上方的“App”
按鈕 (Figure 6 (9)),找到“HumanTracking”應用按鈕 (Figure 6 (10))後 按下,可以看見自己及其他使用者的名稱,再依照需求點擊“Show All” (Figure 6 (11))或個別選擇使用者 (Figure 6 (12)),即可查看其他使 用者的位置 (Figure 6 (13))。
5. 值得注意的是,若其他使用者已超過一小時未更新位置的話,則代表
該使用者的cyber object 會定位於最後使用 Tracking 服務的位置,並在 cyber object 的外圍多加一圈黑色表示離線 (Figure 6 (13))。
6. 另外,如果使用者在關閉Map GUI 後,仍想再度開啟 Map,則可以手 動點擊“open Map”按鈕 (Figure 2 (7)),若是在 Tracking 服務進行的過 程中點擊的話,則依然會自動將代表使用者所在位置的cyber object 定 位於地圖中央 (Figure 6 (1));反之,若是在停用 Tracking 服務的期間 點擊,則不會自動定位cyber object。
Step 5. 關閉 Tracking 服務
1.
當Tracking 服務開始運行時,“Start”按鈕 (Figure 2 (6))的字樣會變為“Stop”,使用者可隨時點擊“Stop”按鈕以中斷 Tracking 服務,待服務 終止後,“Stop”按鈕的字樣會再度恢復為“Start”,欲再啟動服務可 點擊“Start”按鈕 (Figure 2 (6))。
2.
若使用者於Step 2.設定 Tracking 時間當下有選擇使用時間,則Tracking 服務會在時間倒數完畢後自動停止服務,並發送 Tracking End 通知 (Figure 8)提醒使用者服務已終止,欲再啟動服務可點擊該通知前 往Tracking App 頁面 (Figure 2 (c))。
Figure 8. Tracking end notification
第二部分:開發管理者操作
此部分包括七個步驟,其中Step 1.~4 請依照順序執行,Step 5.~7 可自行調整順 序。
Step 1. 開啟 Tracking App 頁面
安裝完畢後至手機桌面點擊IoTtalk App icon (Figure 2 (a)),進入 IoTtalk App 首頁 (Figure 2 (b)) 後按下“TRACKING”按鈕(Figure 2 (1)) 開啟Tracking App 頁面 (Figure 2 (c)),此時 Tracking App 會自動註冊 該裝置至MapTalk。
Step 2. 將 Tracking 服務連接至 MapTalk
1. 初次使用時,請依照MapTalk User Guide 第二章 Step 1~2 的說明在 Map 管理頁面中新增一個名為“HumanTracking”的動態應用,在此應 用中Location 欄位需選擇“Movable”,而 Layout 欄位適合選擇“No Letter”選項。
2. 接著前往IoTtalk Homepage Project Select a project (Figure 9 (a)) add project (Figure 9 (b)) 建立自己的 project
Figure 9. IoTtalk project window
3. 點擊Model (Figure 10 (a)) Tracking (Figure 10 (b)) 可叫出已註冊的 Tracking device ( Figure 11 (a))
Figure 10. Device model selection Figure 11. Device model connection
4. Tracking 中的 DF(device feature)為“IDGeoData-I” ( Figure 11 (b)),共 有五個與Map 對應的參數,由左至右分別是緯度 (Figure 12 (a))、經 度 (Figure 12 (b))、名稱 (Figure 12 (c))、ID (Figure 12 (d))、時間戳記 (Figure 12 (e)) ,其中「名稱」欄位是使用者在 Step 3.於 Name 欄位所 輸入的名字,而ID 欄位則是由系統分配以方便在 Map 上區分不同的 使用者,五個參數的型態分別為float、float、string、float、string。
Figure 12. Device model connection (cont.)
5. 接下來請依照MapTalk User Guide 第二章 Step 4 中 2~5 項敘述叫出 Map Device,並將 Tracking 中作為 IDF (input device feature; Figure 12 (f))的 IDGeoData-I 透過 Join 連線 (Figure 12 (g))連接至在 Map Device 中作為ODF (output device feature; Figure 12 (h))的 HumanTracking,如
Figure 12 所示,因 IDGeoData-I 傳送資料時皆帶有 ID,故此 Join 連線 存在後所有Tracking 使用者皆可以透過此連線傳輸資料。
Step 3. 回到 Tracking App 進行設定
1. 設定Tracking 名字
Name (Figure 2 (2)) 欄位要填入的是使用 Tracking 服務時在地圖上代表 自己的名稱,由使用者自行輸入命名於編輯區(Figure 2 (3))。
2. 設定Tracking 時間
Time (Figure 2 (4)) 欄位要選擇的是使用 Tracking 服務的持續時間,可 於下拉式選單中選擇不限時或是使用10~60 分鐘不等(Figure 2 (5))。
Step 4. 啟用 Tracking 服務
1. 點擊“Start”按鈕 (Figure 2 (6)) 以啟用 Tracking 服務,此時系統會先檢 查以下事項:
網路連線
Tracking 服務需使用網路開啟 Map GUI 並上傳裝置的位置,因此 如果發現無網路連接則會出現網路連線請求對話框(Figure 3 (a)),
請按下“OPEN NETWORK”按鈕 (Figure 3 (1))前往網路設定頁面 開啟可用的網路。
位置存取權限
Tracking 服務最主要的功能即是取得使用者的位置,因此初次使 用此服務時,系統會詢問是否同意此App 存取手機的位置 (Figure 3 (b)),請按下“ALLOW”按鈕 (Figure 3 (2))以確保 Tracking 服務 可以順利進行,同意一次過後此對話框將不再出現。
裝置定位
Tracking 服務需持續取得裝置的所在位置,因此在使用者沒有打 開手機定位的情況下,系統會出現開啟定位請求的對話框 (Figure 3 (c)),這時點擊“OK”按鈕 (Figure 3 (3))即會開啟手機定位,讓 Tracking 服務可以取得此裝置的現在位置。
2. 通過檢查後Tracking 服務便開始運行,此時“Start”按鈕 (Figure 2 (6)) 的字樣會變為“Stop”,並在 5 秒內發送 Android 系統通知 (Figure 4),
提醒使用者此App 正在背景執行。另外,若使用者在 Time (Figure 2 (4)) 欄位有選擇 Tracking 服務的持續時間,則會再發送 Tracking
Remaining Time 的通知 () 讓使用者可以隨時知道此服務剩下多少時間。
緊接著,Tracking 服務會持續將取得的裝置位置上傳至 MapTalk,並 且透過瀏覽器自動開啟Map GUI。
Step 5. 在 Map GUI 上查看 HumanTracking 應用
1. 當Tracking 服務開始運行後,Map device 會經由 MapTalk 不斷接收使 用者的位置 (Figure 12),等到 Map GUI 透過瀏覽器自動開啟時,Map 會自動將代表使用者所在位置的cyber object 定位於地圖中央 (Figure 6 (1)),且 cyber object 中會顯示使用者的 ID,若點擊該 cyber object 則會 出現dialog box (Figure 6 (2))。
2. 其中dialog box 的內容可分為以下三個部分:
(1) Name (Figure 6 (3))
此內容代表該使用者的名字,與使用者在Step 3.時於 Name 欄位 所輸入的名字一致。
(2) Update Time (Figure 6 (4))
顯示此cyber object 最後一次更新的時間。
(3) History (Figure 6 (5))
當使用者點擊此按鈕時會出現時間長度選擇視窗( Figure 7),選擇 後可追蹤使用者的歷史軌跡 (Figure 6 (6)),且 cyber object 中的 ID 會與歷史軌跡的顏色一致 (Figure 6 (7))。
3. 在滑動地圖的過程當中,若看不見代表自己所在位置的cyber object,
則可以點擊定位按鈕 (Figure 6 (8))使得該 cyber object 回到地圖中央以 便查看。
4. 另外,若想查看其他使用者的位置,可點擊Map GUI 左上方的“App”
按鈕 (Figure 6 (9)),找到“HumanTracking”應用按鈕 (Figure 6 (10))後 按下,可以看見自己及其他使用者的名稱,再依照需求點擊“Show All” (Figure 6 (11))或個別選擇使用者 (Figure 6 (12)),即可查看其他使 用者的位置 (Figure 6 (13))。
5. 值得注意的是,若其他使用者已超過一小時未更新位置的話,則代表
該使用者的cyber object 會定位於最後使用 Tracking 服務的位置,並在 cyber object 的外圍多加一圈黑色表示離線 (Figure 6 (13))。
6. 另外,如果使用者在關閉Map GUI 後,仍想再度開啟 Map,則可以手 動點擊“open Map”按鈕 (Figure 2 (7)),若是在 Tracking 服務進行的過
程中點擊的話,則依然會自動將代表使用者所在位置的cyber object 定 位於地圖中央 (Figure 6 (1));反之,若是在停用 Tracking 服務的期間 點擊,則不會自動定位cyber object。
Step 6. 關閉 Tracking 服務
1.
當Tracking 服務開始運行時,“Start”按鈕 (Figure 2 (6))的字樣會變為“Stop”,使用者可隨時點擊“Stop”按鈕以中斷 Tracking 服務,待服務 終止後,“Stop”按鈕的字樣會再度恢復為“Start”,欲再啟動服務可 點擊“Start”按鈕 (Figure 2 (6))。
2.
若使用者於Step 3.設定 Tracking 時間當下有選擇使用時間,則Tracking 服務會在時間倒數完畢後自動停止服務,並發送 Tracking End 通知 (Figure 8)提醒使用者服務已終止,欲再啟動服務可點擊該通知前 往Tracking App 頁面 (Figure 2 (c))。
Step 7. 深入了解 Tracking App 運作流程
Figure 13為 Tracking App 的架構圖,接下來將根據 Tracking App 的運 作流程來做解說:
Figure 13. The functional blocks of the Tracking device
1. 點擊“TRACKING”按鈕(Figure 2 (1))時載入 Tracking App 頁面並 自動註冊該裝置至MapTalk
當 User (Figure 13 (1))在 IoTtalk App 首頁 (Figure 2 (b))按下
“TRACKING”按鈕(Figure 2 (1))時會進入 User Event Handler (Figure 13 (2))。而 User Event Handler 是專門處理由使用者點擊按 鈕所觸發的事件,因此User Event Handler 會將開啟 Tracking App 頁面 (Figure 2 (c))要求傳送至 Data Control (Figure 13 (3)),並同時 將註冊裝置的請求交由Tracking Control (Figure 13 (4))負責。
Data Control 是負責與 Static File (Figure 13 (5))溝通的媒介,而 Static File 是一個 XML 檔案,專門存放 Tracking App 的相關資料,
因此Data Control 會向 Static File 取得載入 Tracking App 頁面所需 的資料,像是使用者名稱,Tracking 時間以及 Tracking 狀態,並 將取得的資料傳送至Graphic Renderer (Figure 13 (6))。
Graphic Renderer 是讓 User 親眼所見的 GUI 產生變化的地方,
因此Graphic Renderer 會產生完整的 Tracking App 頁面呈現於 User 面前,整個載入 Tracking App 頁面的過程中所途經的路徑為 (1) (2) (3) (5) (3) (6) (1)。
Tracking Control 是專門管理所有與 Tracking 服務有關的事情,
因此當Tracking Control 了解到這是個註冊裝置的請求後,便會先
檢查此裝置是否已經註冊過,若是沒有的話即會將此工作交由 MsgHandler (Figure 13 (7))處理。
MsgHandler 則是負責與 MapTalk Server (Figure 13 (9))溝通的地 方,因此MsgHandler 會將註冊請求分派給 Register 模組 (Figure 13 (8)),最終由 Register 模組向 MapTalk Server 進行註冊,整個自 動註冊完成的路徑為(1) (2) (4) (7) (8) (9)。
2. 點擊“Start”按鈕 (Figure 2 (6))啟用 Tracking 服務
當User 在 Tracking App 頁面中按下“Start”按鈕 (Figure 2 (6)) 時會進入User Event Handler,此時 User Event Handler 會將啟用 Tracking 服務的請求傳送至 Data Control 及 Permission Handler (Figure 13 (10))。Data Control 會將使用者輸入的名字、選擇的時 間儲存至Static File,讓使用者下次進入 Tracking App 頁面時不必 重複輸入,此過程所經過的路徑為 (1) (2) (3) (5)。
Permission Handler 是處理啟用 Tracking 服務時所需權限的地 方,會檢查是否已向使用者取得Tracking 服務所需的權限,其中 檢查的項目有是否具備網路連線、是否已取得位置存取權限以及 是否開啟裝置定位,若無的話會立即至Graphic Renderer 產生對話 框(Figure 3)徵求使用者的同意,此過程途經的路徑為 (1) (2) (10) (6) (1)。
待User 點擊同意後便會再度經由 User Event Handler 至 Permission Handler 進行檢查,當 Permission Handler 判斷皆獲取所 需權限後即會將啟用Tracking 服務的請求傳送至 Tracking
Control,至此所經的路徑為(1) (2) (10) (4)。
在Tracking Control 接收到開始 Tracking 服務的請求後,會將 Tracking 狀態改變為啟用狀態並傳送至 Data Control、Graphic Renderer、Notification Handler (Figure 13 (11))以及 Location Handler (Figure 13 (12)),若使用者在 Time (Figure 2 (4)) 欄位有選 擇Tracking 服務的持續時間則會另外傳送至 Timer (Figure 13 (13))。
當Data Control 接收到 Tracking 狀態的改變時,便會將最新資 訊儲存至Static File ((4) (3) (5))。而 Graphic Renderer 會讓
“Start”按鈕 (Figure 2 (6))的字樣變為“Stop”並且透過瀏覽器自動 開啟Map GUI ((4) (6) (1))。
Notification Handler 負責發送手機通知,當 Notification Handler 接收到 Tracking 服務開始的消息後,便會在 5 秒內發送 Android 系統通知,至 Graphic Renderer 產生通知欄畫面 (Figure 4),
App 正在背景執行 ((4) (11) (6) (1))。
而Timer 則是一個倒數計時器,負責計算 Tracking 服務的剩 餘時間,當計時器啟用後,便會至Notification Handler 發送 Tracking Remaining Time 的通知,至 Graphic Renderer 產生通知欄 畫面() ,讓使用者可以隨時知道此服務剩下多少時間((4) (13)
(11) (6) (1))。
Location Handler 負責取得裝置的現在位置。在 Tracking 服務 的使用期間,Location Handler 會持續偵測裝置的位置,並將經緯 度資料傳送至MsgHandler,由 MsgHandler 包裝成正確的資料格式 後再分派給其中的Push 模組(Figure 13 (14))上傳至 MapTalk Server ((4) (12) (7) (14) (9))。
3. 點擊“open Map”按鈕 (Figure 2 (7))開啟 Map GUI
當 User 點擊“open Map”按鈕 (Figure 2 (7))時,User Event Handler 會將開啟 Map 的要求傳送至 Graphic Renderer,而 Graphic Renderer 會根據 Tracking 狀態檢查是否要自動將代表使用者所在 位置的cyber object 定位於地圖中央 (Figure 6 (1)),最終呈現 Map GUI 於 User 眼前 ((1) (2) (6) (1))。
4. 手動點擊“Stop”按鈕(Figure 2 (6))關閉 Tracking 服務
當User 點擊先前由“Start”變為“Stop”字樣的按鈕 (Figure 2 (6))時,User Event Handler 會將停止 Tracking 服務的請求送往 Tracking Control,此時 Tracking Control 會將 Tracking 狀態改變為 關閉狀態並傳送至Data Control、Graphic Renderer、Notification Handler 以及 Location Handler,若使用者在 Time (Figure 2 (4)) 欄 位有選擇Tracking 服務的持續時間則會另外傳送至 Timer。
當Data Control 接收到 Tracking 狀態的改變時,便會將最新資 訊儲存至Static File ((4) (3) (5))。而 Graphic Renderer 會讓
“Stop”按鈕 (Figure 2 (6))的字樣重新變為“Start” ((4) (6) (1))。
當Notification Handler 接收到 Tracking 服務停止的消息後,
便會刪除Android 系統通知,至 Graphic Renderer 取消通知欄畫面 ((4) (11) (6) (1))。
而當Timer 知道 Tracking 服務要停止時,便會取消計時,並 告知Notification Handler 刪除 Tracking Remaining Time 的通知,
至Graphic Renderer 取消通知欄畫面 ((4) (13) (11) (6) (1))。
而Location Handler 接到 Tracking 服務要停止的消息後,便會 立即停止偵測該裝置的現在位置((4) (12)),讓 Tracking 服務真 正停止運行。
5. 時間倒數完畢後自動停止Tracking 服務
當 Timer 的時間倒數完畢時,Timer 會將結束的訊息傳送至 Notification Handler 以及 Tracking Control,以達到自動停止 Tracking 服務。
當 Notification Handler 接收到 Timer 結束的訊息時,會刪除 Tracking Remaining Time 的通知並發送 Tracking End 通知,至 Graphic Renderer 產生通知欄畫面 (Figure 8),告知使用者 Tracking 服務已結束 ((13) (11) (6) (1))。
而當Tracking Control 得到 Timer 結束的消息時,便會將 Tracking 狀態改變為關閉狀態並傳送至 Data Control、Graphic Renderer、Notification Handler 以及 Location Handler。
當Data Control 接收到 Tracking 狀態的改變時,便會將最新資 訊儲存至Static File ((4) (3) (5))。而 Graphic Renderer 會讓
“Stop”按鈕 (Figure 2 (6))的字樣重新變為“Start” ((4) (6) (1))。
當 Notification Handler 接收到 Tracking 服務停止的消息後,便 會刪除Android 系統通知,至 Graphic Renderer 取消通知欄畫面 ((4) (11) (6) (1))。
而 Location Handler 接到 Tracking 服務要停止的消息後,便會立 即停止偵測該裝置的現在位置((4) (12)),讓 Tracking 服務真正 停止運行。