首先要扫描的条码是这样的:
这种条码是经过加密的,所以需要一定的库来解析,具体操作:
首先新建项目时要注意包名一致,这里是要求用com.example.nfctest这个包;导入相应的jni库操作,project模式下,将“dlparserlib.jar”包复制到libs文件夹下,然后添加依赖,如图:
然后再src/mian路径下新建一个jniLibs文件夹,里面放下载库文件,之后就是库的应用;
权威指导如何使用该库链接
package com.example.nfctest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import net.idscan.android.dlparser.DLParser;
import java.io.UnsupportedEncodingException;
public class MainActivity extends AppCompatActivity {
private EditText et_data;
private TextView tv_log;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_data = (EditText) findViewById(R.id.et_data);
tv_log = (TextView) findViewById(R.id.tv_log);
}
public DLParser.DLResult strParser(String data) {
DLParser parser = new DLParser();
DLParser.DLResult res = null;
try {
parser.setup(getApplicationContext(),"IgwHTF3BJ8ag/Nz67TRkVMrmXkf6Mhk5bb0toukY+9C9xy6XGCMdTtg3gIJDXEVLn8Vaxz271Aol/FCiTE7qPscB8F1SGabsSMykKKPmYgU2jPlqvbi2flYNIysmu4YupCj3dkdR7HjTDQeFJ3DCCrPpW53WsLvaUtv5GeqMAz8=");
res = parser.parse(data.getBytes("UTF8"));
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
public void doParser(View view) {
DLParser.DLResult res = strParser(et_data.getText().toString());
tv_log.setText(res.firstName+"\n"+res.lastName+"\n"+res.birthdate+"\n"+res.country+"\n"
+res.countryCode+"\n"+res.postalCode+"\n"+res.address1+"\n"+res.address2+"\n...");
}
}
简单的使用,布局自己随便写啦~直接上结果图:
其实一般二维头扫描的结果是一堆乱码原因是加密了的信息,通过这个库来解析转换为明文,其实打印的信息还有很多,远不止这些,只是一个给客户看的demo,就不那么详细写了。