派查查 :一个WearOS智能手表系统上的快递查询应用
目錄
前言
項目概述
設計背景
系統架構
接口介紹
即時查詢請求
即時查詢回復
前言
????????在學習面向對象程序設計課程的時候,收獲頗多,最后的課程報告選題選擇了“Android開發”。但是安卓手機上好的應用數不勝數,自己不想重蹈覆轍做別人做過不知道多少遍的東西,就選擇了當時相對Android手機軟件開發比較小眾的WearOS系統軟件開發,做了TicWatch的問問商店里第一款腕上快遞查詢應用:派查查PieExpress。這也是我第一次做安卓開發,如有不足,還請海涵。
項目概述
運行環境:Google WearOS 國內版
軟件類型:快遞查詢工具
基本功能:
-
快遞查詢:在手表上輸入快遞運單號后,聯網查詢快遞的運輸信息,包括運輸狀態、到達時間和地點等。
-
快遞收藏:輸入的運單號和查詢的快遞信息可以本地保存,方便下次查看,可以為運單號寫備注,方便知道是哪個快遞。
-
語音錄入:輸入運單號或運單備注時可以語音輸入(調用TicWatch語音接口實現,小米手表等可能無法使用)
項目地址:https://github.com/ranlychan/PieExpressTracking
運行截圖:
圖1. 主界面運行效果圖 圖2. 錄入快遞信息界面運行效果設計背景
????????如今,人們在網絡購物時常常需要關注物流信息,而用智能手機方便快捷地獲取快遞信息技術已經較為成熟,應用也已較為廣泛。例如在Android應用市場中比較熱門的“菜鳥裹裹”,“快遞100”等應用,但使用Android智能可穿戴設備獲取快遞信息的服務或應用卻較為少見。以Android智能手表為例,因為在中國大陸無法連接到Google Play商店,國內基于Wear OS的智能手表的應用商店往往都是另起爐灶,多而不全,基本無法找到適配手表的快遞查詢應用。而基于Watch OS的Apple Watch因為有著成熟的Appstore生態支持,有較多的手表端物流查詢應用以及依賴智能手機的查詢應用,例如淘寶針對Apple Watch推出的客戶端目前具有的待收貨功能可追蹤在淘寶購買的商品物流信息;Appstore收費應用“追快遞專業版“支持IOS客戶端添加和查詢多家快遞公司物流信息并實時推送到Apple Watch上。針對上述Wear OS快遞查詢應用少的情況,本文將著手介紹基于Wear OS的快遞查詢追蹤應用的設計與實現。
系統架構
????????快遞物流信息查詢系統將使用C/S(Client/Server)模式開發,因為初步來說,基于智能手表的Client發送獲取物流信息的請求,由物流公司Server或專門整合多家物流信息的中間服務器通過API等形式提供所需物流信息,然后再由智能手表Client呈現給用戶。這意味著有兩條獲取物流信息的方式:
1) 直接通信:與需要查詢的物流公司服務器直接通信,直接從物流公司獲取所需物流信息,如從順豐速遞等獲取。
2) 間接通信:由整合多家物流信息的物流信息公司,如快遞鳥,充當中間服務器的角色,Client與其通信相當于間接與多家其它物流公司Server通信。
其一,由于一般來說,對于用戶而言,往往需要查詢多家快遞公司的物流信息,所以如果選擇直接通信的方式,Client需要同時對接多家物流公司接口,而選擇間接通信的方式,Client只需要對接中間服務器接口就能查詢上百家物流公司的快遞信息。
其二,物流公司的服務接口有可能發生變動,同時維護多家物流公司提供的接口所需維護工作量顯然遠大于只維護中間服務器提供的接口。
????????此外,考慮到搭載Wear OS的設備一般是Android智能手表,運算性能儲存空間等都較為有限,對接多家物流公司的接口至少在代碼量上就遠大于只對接中間服務器接口,會使程序體積變大,不利于在智能手表這類設備上運行。綜上考慮,本系統將選擇間接通信的方式獲取物流信息。
接口介紹
????????項目使用快遞鳥的即時查詢API免費版。內容來自快遞鳥API文檔 免費查詢快遞接口 物流即時查詢API-快遞鳥 (kdniao.com)
即時查詢請求
請求參數說明:
| RequestData | String | 請求內容需進行URL(utf-8)編碼。請求內容JSON格式,須和DataType一致。 | R |
| EBusinessID | String | 商戶ID,請在我的服務頁面查看。 | R |
| RequestType | String | 請求指令類型:1002 | R |
| DataSign | String | 數據內容簽名:把(請求內容(未編碼)+AppKey)進行MD5加密,然后Base64編碼,最后 進行URL(utf-8)編碼。詳細過程請查看Demo。 | R |
| DataType | String | 請求、返回數據類型:2-json; | O |
請求JSON示例:
{"OrderCode": "","ShipperCode": "SF","LogisticCode": "118650888018" }即時查詢回復
返回參數定義:
| EBusinessID | String | 用戶ID | R |
| OrderCode | String | 訂單編號 | O |
| ShipperCode | String | 快遞公司編碼 | R |
| LogisticCode | String | 物流運單號 | O |
| Success | Bool | 成功與否 | R |
| Reason | String | 失敗原因 | O |
| State | String | 物流狀態:2-在途中,3-簽收,4-問題件 | R |
| Traces | |||
| AcceptTime | String | 時間 | R |
| AcceptStation | String | 描述 | R |
| Remark | String | 備注 | O |
返回JSON示例:
{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "SF","LogisticCode": "118461988807","Success": true,"State": 3,"Reason": null,"Traces": [{"AcceptTime": "2014/06/25 08:05:37","AcceptStation": "正在派件..(派件人:鄧裕富,電話:18718866310)[深圳市]","Remark": null},{"AcceptTime": "2014/06/25 04:01:28","AcceptStation": "快件在 深圳集散中心 ,準備送往下一站 深圳 [深圳市]","Remark": null},{"AcceptTime": "2014/06/25 01:41:06","AcceptStation": "快件在 深圳集散中心 [深圳市]","Remark": null},{"AcceptTime": "2014/06/24 20:18:58","AcceptStation": "已收件[深圳市]","Remark": null},{"AcceptTime": "2014/06/24 20:55:28","AcceptStation": "快件在 深圳 ,準備送往下一站 深圳集散中心 [深圳市]","Remark": null},{"AcceptTime": "2014/06/25 10:23:03","AcceptStation": "派件已簽收[深圳市]","Remark": null},{"AcceptTime": "2014/06/25 10:23:03","AcceptStation": "簽收人是:已簽收[深圳市]","Remark": null}] }本人博客原文地址:https://ranlychan.top/archives/36/
總結
以上是生活随笔為你收集整理的派查查 :一个WearOS智能手表系统上的快递查询应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java sqlserver2014_j
- 下一篇: Win11系统wsappx程序磁盘占用率