在進行nfc列印時我們先要了解印表機的屬性,本文中印表機以exp342為標準進行編寫整合技術文件。exp342的部分設定請參考該產品的使用說明書。我們在進行android整合開發時需要注意印表機的黑標感應點的位置,確定列印紙張黑標是否完全覆蓋印表機黑標感應點,如果未完全覆蓋將會導致列印紙不能走到你預期想要的位置。標準紙張左黑標長度2.2cm,右邊黑標長1.6cm,如果黑標未能達到該標準,系統默然將走紙長度為31.25cm處。
在專案project build.gradle新增
allprojects }}
dependencies
步驟一:過濾標籤,我們都知道每個nfc都有標籤,當裝置靠近標籤時裝置會前去解析標籤,這裡我們將過濾標籤,再程式中只解析印表機標籤,如果想要系統再靠近標籤時不彈出系統空標籤,在實際開發種我們將以下**寫在baseactivity中,讓其他activity繼承該該baseactivity。
nfcprinter = new nfcprinter(this);
boolean result = nfcprinter.check_loacl_nfc_device();//判斷是否支援nfc
if (!result)
return;
nfcprinter.setnfcforeground();
步驟二:再activity 的onresume與onpause,啟動與暫停讀取印表機標籤。
@override
public void onresume()
}@override
public void onpause()
}
步驟三:組裝資料,所有的資料都是通過esc工具類封裝,在esc
中主要有以下重要的方法:
esc esc = new esc(2048);
esc.reset();//復位esc指令
esc.feedrightmark();//走紙到右黑標
esc.feedleftmark()//走紙到左黑標
esc.feeddots(int dots)// 走紙n點,每個點0.125mm,有點相當於空格
esc. feedlines(final int nlines)// 走紙n行,相當於換行符
esc.setalign(escdefine.align.center);// 居中對齊,escdefine.align支援left,center,rifht,三種對齊方式。
esc.settextsize(escdefine.bar_text_size.ascii_12x24);//設定字型大小,在該工具中封裝了2種字型大小分別是ascii_12x24,ascii_8x16
esc.text(string text);// 新增文字
esc.moulddefine(escdefine.mould_id id, final byte data, final int datalen)//設定模板
esc.mouldrun(escdefine.mould_id.m0, 1);//執行模板
esc.getescdata()//得到裝的esc資料
步驟四:將封裝的資料傳送給印表機
byte data = esc.getescdata();//獲取需要傳送的資料
this.nfcprinter.startprinttask(data, 1000 * 30);//開啟執行緒傳送資料
步驟五:
通過handler來接受印表機反饋的結果。
public static handler uimhandler;
@override
protected void onstart() };}
其他列印裝置接入請修改esc 類中的指令**,例如:
/**
* 復位esc指令
* @return
*/public boolean reset()
;return add(cmd);
}
其中我們看見到的
0x1b, 0x40
這兩個進製碼表示印表機的復位,你只需根據其他印表機提供的進製碼進行修改 。詳情參考 例子
Android近場通訊 NFC基礎(二)
應用程式如何排程nfc標籤 當標籤排程系統完成對nfc標籤和它的標識資訊封裝的intent物件的建立時,它會把該intent物件傳送給感興趣的應用程式。如果有多個應用程式能夠處理該intent物件,就會顯示activity選擇器,讓使用者選擇activity。標籤排程系統定義了三種intent物件,...
Android近場通訊 NFC基礎(四)
從intent中獲取資訊 如果因為nfc的intent而啟動乙個activity,那麼你就能夠從intent中獲取被掃瞄到的nfc標籤的相關資訊。根據被掃瞄到的標籤,intent物件能夠以下額外的資訊 1.extra tag 必須的 它是乙個代表了被掃瞄到的標籤的 tag物件 2.extra nde...
Android近場通訊 高階NFC(一)
本文譯自 本文介紹一些高階的nfc專題,如多樣的nfc標籤技術 編寫nfc標籤 以及前台排程,前台排程允許在前台的應用程式優先排程intent事件,即使還有其他的過濾同樣的intent事件的應用程式存在。android所支援的nfc標籤技術 在使用nfc標籤和android裝置來進行工作的時候,使用...