0810
如题,二维码在物流领域的应用研究是我毕业的论文设计。在此拿出来分享一下,充实一下个人博客库。
先说明一下题目的意义,当前物流飞速发展,伴随着就产生了信息泄露,不法分子利用快递单上的重要信息进行不法行为,严重侵犯了客户的隐私甚至安全。而我们做的就是从快递单下手,将快递单的重要信息如收件地址和联系电话等重要信息生成二维码,表面只用显示大概地址和部分手机号码。当然我们也要对极其重要的门牌号和联系电话进行加密,这样即便不法分子利用移动设备扫描出来的也不是真实信息。
另一个功能在邮递员送货上门前,用设备进行扫描,得出具体信息。
由于网上有很多代码足可以实现二维码的生成和解码,具体不再阐述,本人选择zing包,zing大大缩减了代码量,只保留扫码和解码功能,因此选用zing包。
在Android项目下的res文件夹里的layout里设计页面,这相当于web网站上的前端,这也是在手机里显示的页面,所以美观问题不美观主要看这里。
后台代码主要写在src里面的包里,这里我定义了一个zknu.qrcord包,包里面的activemain文件里写后台代码,这里面有执行为主要函数main函数,整个函数从这里开始,当然我们也可以在外部定义一个文件,从这里进行引用,由于这个程序的代码并不多,因此我写在了这一文件里,贴上代码
package com.zknu.qrcode;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.io.InputStream;
import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.WheelView;
import kankan.wheel.widget.adapters.ArrayWheelAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import android.content.Intent;
import android.widget.Button;
import android.widget.EditText;
import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class MainActivity extends Activity implements OnWheelChangedListener {
private Button button1Button;
private EditText sjxixiEditText;
private EditText lianxifangshi;
String xinxiString;
private JSONObject mJsonObj;
/**
* 省的WheelView控件
*/
private WheelView mProvince;
/**
* 市的WheelView控件
*/
private WheelView mCity;
/**
* 区的WheelView控件
*/
private WheelView mArea;
/**
* 所有省
*/
private String[] mProvinceDatas;
/**
* key - 省 value - 市s
*/
private Map<String, String[]> mCitisDatasMap = new HashMap<String, String[]>();
/**
* key - 市 values - 区s
*/
private Map<String, String[]> mAreaDatasMap = new HashMap<String, String[]>();
/**
* 当前省的名称
*/
private String mCurrentProviceName;
/**
* 当前市的名称
*/
private String mCurrentCityName;
/**
* 当前区的名称
*/
private String mCurrentAreaName = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dingdantijiao);
initJsonData();
mProvince = (WheelView) findViewById(R.id.id_province);
mCity = (WheelView) findViewById(R.id.id_city);
mArea = (WheelView) findViewById(R.id.id_area);
initDatas();
mProvince.setViewAdapter(new ArrayWheelAdapter<String>(this,
mProvinceDatas));
// 添加change事件
mProvince.addChangingListener(this);
// 添加change事件
mCity.addChangingListener(this);
// 添加change事件