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