Android連接佳博58熱敏打印機實例

緣由

最近公司上了新的項目,需求大概就是你出去吃飯買單的時候,收銀妹紙會在平板上操作來進行收銀并打印小票,這個客戶端目前大多都是Android系統(tǒng),那么其中就要用到Android平板連接打印機來進行通訊了。這個項目(以下簡稱收銀平板)之前是有另外一個團隊(以下簡稱CS)開發(fā)的,目前是要重構(gòu)并升級到2.0版本。但是前幾天CS反饋說是最近遇見bug,打印機和平板會莫名斷開連接,其中實現(xiàn)的重連機制也不好使。由于即將進行2.0的開發(fā)工作,也是為了進一步熟悉當中的業(yè)務,然后跟CS要來代碼,研究了一通,發(fā)現(xiàn)之前的1.0代碼寫得...可能是接手人員比較多,也有可能開發(fā)周期的問題吧。

環(huán)境

我現(xiàn)在的環(huán)境是AS2.0,佳博5890XIII打印機,端口是wifi連接,該款打印機也支持藍牙和USB,GprinterSDKV2.1,如果是其他型號可以去佳博官網(wǎng)下載對應sdk。將拷來的代碼在這個環(huán)境跑了多次,模擬了兩種常見的情景:斷網(wǎng),斷電確實出現(xiàn)過連接丟失的情況。首先是檢查相關(guān)代碼的邏輯,由于年代比較久遠,接手人員較多等原因,加之注釋也很稀缺,在這塊寫了很多flag之類的標識,判斷條件之多至少令我咋舌,只有邊看邊猜。原來以為是重連機制部分邏輯有誤,嘗試修改了部分代碼,經(jīng)測無效。后來發(fā)現(xiàn)sdk中自帶的用于監(jiān)聽打印機連接狀態(tài)變更的廣播會在一段時間之后歇菜。那這個是不是sdk的問題?遂找到佳博技術(shù)支持,那哥們?nèi)瞬诲e,也跟我吐槽之前的代碼不知道誰寫的,一大堆廣播,還阻塞UI,太爛了,改不了。然后自己嘗試寫了一個新版的,發(fā)給我,那哥們簡稱JBSDK,以下就是根據(jù)新版SDK的隨意寫了個sample。

1.新建項目,導入jar包--->jbsdk.jar

2.在manifest注冊打印服務,同時別忘了添加網(wǎng)絡(luò)和wifi相關(guān)的權(quán)限哦~

3.在MainActivity中綁定服務,


同時將打印機連接狀態(tài)變更和查詢打印機實時狀態(tài)的回調(diào)一起注冊了


4.服務所提供的接口

打印機連接狀態(tài)改變的接口

分別對應“正在連接”,“斷開連接”,“已連接”三種狀態(tài)

查詢打印機實時狀態(tài)接口



打印服務提供的相關(guān)操作

5.使用服務


打開連接
打印測試頁


關(guān)閉連接


獲取打印機連接狀態(tài)


獲取命令類型

打開連接之后,之前的打印機狀態(tài)變更的回調(diào)就派上用場了

打印機狀態(tài)變更回調(diào)


實時狀態(tài)查詢回調(diào)

還有打印標簽和票據(jù)的例子就不再一一展示了,可以酌情增減。

好了基本就是這么多,有什么問題可以和我聯(lián)系噠!


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容