1. 程式人生 > >Android USB Host與USB Hid裝置的通訊(印表機和android通訊,通過USB)

Android USB Host與USB Hid裝置的通訊(印表機和android通訊,通過USB)

記事:android和印表機通過網路通訊(網路印表機),有空也要記錄一下
堆疊關係也要記錄一下(通常我們所說的堆疊都是指棧,比如一個方法被呼叫的時候,我們就會把相關變數壓棧(巢狀才會壓棧,一個方法呼叫完是要出棧的),除非遞迴,一般情況下,棧是不會溢位的)
近期一直在做Android USB Host與USB Hid裝置的通訊,要被搞死了。資料太少了,有空的時候要總結一下用到的相關知識

首先,Google Developer提供的方法了bulkTransfer()去實現兩者之間的通訊
流程設計:

  1. 首先使用bulkTransfer(),傳送列印資料給印表機;
  2. 傳輸是無狀態的(我猜的),即不能像介面一樣,傳過去就能知道有沒有列印成功,我們通過1的流程,只能確定我們傳送成功了,至於對方有沒有接收成功是不清楚的;
  3. 在傳送列印資料之前,我們會開啟印表機的自動回覆,這樣當印表機的列印狀態發生變化時,我們就可以呼叫bulkTransfer()接收到資料。
  4. 算了算了,好像我自己還沒搞明白,回頭再來說這個問題

開啟印表機的自動回覆:byte[] CMD_SET_STATUS_AUTO_REPLY = {0x1D, 0x61, 0x4E}
允許自動狀態回覆(ASB)是用來幹嘛的

傳送門:android官方API
傳送門: bulkTransfer返回-1
傳送門: bulkTransfer返回-1
參考:
Android USB Host 與 HID 之通訊方法(bulkTransfer()與controlTransfer()方法使用)