package com.ectrip.cyt.ui; import hdx.HdxUtil; import java.io.IOException; import java.security.InvalidParameterException; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import android_serialport_pos_id_api.SerialIdCardPort; import com.ectrip.cyt.config.DevicTool; import com.ectrip.cyt.config.MyApp; import com.ectrip.cyt.utils.SharedPreferences2Obj; import com.ectrip.trips.check.R; import com.synjones.sdt.IDCard; /** * @author jigo * 带身份证pos机 */ public class SerialIdCardPortActivity extends BaseActivity{ private TextView topBack; private Button topBtns; private LinearLayout llayout; private boolean stop=false; private SerialIdCardPort mSerialIdCardPort; private IDCard idcard = null; private String titleName; @SuppressLint("HandlerLeak") Handler handler=new Handler(){ public void handleMessage(Message msg) { switch(msg.what){ case 0: //接收身份证号 String str=msg.obj.toString(); Intent intent=new Intent(SerialIdCardPortActivity.this,IDOrderListActivity.class); intent.putExtra("mode", 0); //将身份证号传到OrderListActivity中 intent.putExtra("idcardNumber", str.trim()); intent.putExtra("titleName",getString(R.string.order_list)); stop=true; startActivity(intent); finish(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.serialidcardport); initPos(); initView(); new ReadThread().start(); } private void initPos(){ try { //pos机身份证读取模块加电 HdxUtil.SetIDCARDPower(1); //切换到身份证读取功能 HdxUtil.SwitchSerialFunction(HdxUtil.SERIAL_FUNCTION_IDCARD); } catch (Exception e) { e.printStackTrace(); } } private void initView() { SharedPreferences2Obj.getInstance(SerialIdCardPortActivity.this). setName("SelectAction").setObject("isStatistic","0"); //非统计 titleName=getIntent().getStringExtra("titleName"); if(titleName!=null){ ((TextView)findViewById(R.id.title)).setText(titleName); }else{ ((TextView)findViewById(R.id.title)).setText(R.string.scan_id); } ((TextView)findViewById(R.id.title)).setVisibility(View.VISIBLE); topBack=(TextView)findViewById(R.id.topBack); topBtns=(Button)findViewById(R.id.topBtns); //提示读取身份证区 llayout=(LinearLayout) findViewById(R.id.llayout); //点击头部返回键,关闭当前activity topBack.setOnClickListener(new OnClickListener() { public void onClick(View v) { stop=true; //pos机身份证读取模块断电 HdxUtil.SetIDCARDPower(0); finish(); } }); topBtns.setVisibility(View.GONE); llayout.setVisibility(View.VISIBLE); try { //获取039bPOS机串口 mSerialIdCardPort=DevicTool.getInstance().getSerialIdCardPort(); } catch (InvalidParameterException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } //读取身份证线程 class ReadThread extends Thread{ public void run() { while(stop==false){ idcard=mSerialIdCardPort.getIDCard(); if(idcard!=null){ Message msg=new Message(); msg.what=0; msg.obj=idcard.getIDCardNo(); //将身份证号发出去 handler.sendMessage(msg); } } } } @Override protected void onDestroy() { stop=true; HdxUtil.SetIDCARDPower(0); super.onDestroy(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { stop=true; HdxUtil.SetIDCARDPower(0); finish(); } return false; } }