Blame view

src/com/ectrip/cyt/ui/NewHandleScanerActivity.java 9.39 KB
3c2353cd   杜方   1、畅游通核销app源码提交;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  package com.ectrip.cyt.ui;
  
  import java.io.File;
  import java.io.FileWriter;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.io.UnsupportedEncodingException;
  import java.security.InvalidParameterException;
  import java.util.ArrayList;
  import java.util.concurrent.atomic.AtomicBoolean;
  
  import android.app.AlertDialog;
  import android.content.DialogInterface;
  import android.content.DialogInterface.OnClickListener;
  import android.content.Intent;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.View;
  import android.widget.Button;
  import android.widget.TextView;
  import android.widget.Toast;
2707d233   杜方   1、畅游通核销app;修改扫二维码...
23
  
3c2353cd   杜方   1、畅游通核销app源码提交;
24
25
26
27
28
29
30
31
32
  import android_serialport_api.SerialPortNewHandset;
  
  import com.ectrip.cyt.bean.ConfigBean;
  import com.ectrip.cyt.config.DevicTool;
  import com.ectrip.cyt.config.MyApp;
  import com.ectrip.cyt.constant.constant;
  import com.ectrip.cyt.db.DbManager;
  import com.ectrip.cyt.shield_home.LockLayer.MToast;
  import com.ectrip.cyt.utils.AESEncryptor;
2707d233   杜方   1、畅游通核销app;修改扫二维码...
33
  import com.ectrip.cyt.utils.Base64;
3c2353cd   杜方   1、畅游通核销app源码提交;
34
35
36
37
38
39
40
  import com.ectrip.cyt.utils.DesUtil;
  import com.ectrip.trips.check.R;
  
  /**
   * @author jigo 新的手持机二维码扫描
   */
  public class NewHandleScanerActivity extends BaseActivity {
2707d233   杜方   1、畅游通核销app;修改扫二维码...
41
42
43
44
45
46
47
      private final String TAG = "qrcode";
      protected MyApp mApplication;
      protected SerialPortNewHandset mSerialPort;
      protected OutputStream mOutputStream;
      private InputStream mInputStream;
      private ReadThread mReadThread;
      private String titleName;
3c2353cd   杜方   1、畅游通核销app源码提交;
48
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
49
50
51
      private Button scanerBtn;
      private View topBack;
      private TextView title;
3c2353cd   杜方   1、畅游通核销app源码提交;
52
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
53
      private AtomicBoolean isStop = new AtomicBoolean(false);
3c2353cd   杜方   1、畅游通核销app源码提交;
54
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
55
56
57
58
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_newhandle_scaner);
3c2353cd   杜方   1、畅游通核销app源码提交;
59
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
60
61
          initView();
          init();
3c2353cd   杜方   1、畅游通核销app源码提交;
62
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
63
64
65
66
67
68
          setpower("/sys/class/gpio/gpio28/value", false); // 给二代证下电
          try {
              Thread.sleep(1000);
          } catch (InterruptedException e) {
          }
          setpower("/sys/class/gpio/gpio114/value", true);
3c2353cd   杜方   1、畅游通核销app源码提交;
69
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
          // setTitle("Loopback test");
          scanerBtn = (Button) findViewById(R.id.scanerBtn);
          scanerBtn.setOnClickListener(new View.OnClickListener() {
              public void onClick(View paramAnonymousView) {
                  byte[] arrayOfByte = {0x1b, 0x31};
                  try {
                      NewHandleScanerActivity.this.mOutputStream
                              .write(arrayOfByte);
                      return;
                  } catch (IOException localIOException) {
                      localIOException.printStackTrace();
                  }
              }
          });
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
85
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
86
87
88
89
90
91
92
93
94
95
96
      private void initView() {
          title = (TextView) findViewById(R.id.title);
          topBack = findViewById(R.id.topBack);
          topBack.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  close();
                  finish();
              }
          });
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
97
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
98
99
100
101
102
103
104
105
106
      private void init() {
          mApplication = (MyApp) getApplication();
          titleName = getIntent().getStringExtra("titleName");
          title.setVisibility(View.VISIBLE);
          if (titleName != null) {
              title.setText(titleName);
          } else {
              title.setText(R.string.qr_code);
          }
3c2353cd   杜方   1、畅游通核销app源码提交;
107
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
108
109
110
111
          try {
              mSerialPort = DevicTool.getInstance().getSerialPortNewHandset();
              mOutputStream = mSerialPort.getOutputStream();
              mInputStream = mSerialPort.getInputStream();
3c2353cd   杜方   1、畅游通核销app源码提交;
112
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
113
114
115
116
117
118
119
120
121
122
123
              /* Create a receiving thread */
              mReadThread = new ReadThread();
              mReadThread.start();
          } catch (SecurityException e) {
              DisplayError(R.string.error_security);
          } catch (IOException e) {
              DisplayError(R.string.error_unknown);
          } catch (InvalidParameterException e) {
              DisplayError(R.string.error_configuration);
          }
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
124
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
125
126
127
128
129
      public void delay(int i) {
          for (int j = 0; j < 1000; j++)
              for (; i < 0; i--)
                  ;
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
130
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
131
132
133
      protected void onDataReceived(final byte[] buffer, final int size) {
          runOnUiThread(new Runnable() {
              public void run() {
3c2353cd   杜方   1、畅游通核销app源码提交;
134
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
135
136
                  try {
                      String tempstr = new String(buffer, 0, size);
9e9f1eb7   杜方   1、畅游通核销app:新增主界面关...
137
                      handleDecode(new String(tempstr.getBytes("GBK"), "GBK").trim());
2707d233   杜方   1、畅游通核销app;修改扫二维码...
138
139
140
141
142
143
144
145
146
                  } catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
                  // mReception.append(new String(buffer, 0, size));
              }
          });
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
147
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
      /**
       * 处理扫描结果
       *
       * @param result
       * @param
       */
      public void handleDecode(String result) {
          if (result.equals("")) {
              MToast(NewHandleScanerActivity.this, getString(R.string.scan_fail),
                      MToast.LENGTH_SHORT);
          } else {
              try {
                  if (result.startsWith("CYT_")) {
                      result = result.substring(result.indexOf("_") + 1,
                              result.indexOf(","));
                      ArrayList<ConfigBean> beans = DbManager.GetConfigs();
                      // 畅游通生成的订单ID:
                      String ec_name = beans.get(0).getEc_signkey();
                      ec_name = AESEncryptor.decrypt(constant.decrypt, ec_name);
                      result = DesUtil.decrypt(result, ec_name);
                  } else if (result.startsWith("TDOS_")) {
                      result = result.substring(
                              result.indexOf("_") + 1,
                              result.indexOf(","));
                      result = new String(Base64.decode(result), "utf-8");
                  } else if ((result.startsWith("TY_") || (result.startsWith("PMS_")))) {
                      result = result;
                  } else {
                      result = result;
                  }
              } catch (Exception e) {
                  e.printStackTrace();
                  MToast(NewHandleScanerActivity.this,
                          getString(R.string.order_id_incorrect),
                          MToast.LENGTH_SHORT);
              }
3c2353cd   杜方   1、畅游通核销app源码提交;
184
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
185
186
187
188
189
190
191
192
193
194
195
196
197
              Intent intent = new Intent(NewHandleScanerActivity.this,
                      QRCodeOrderListActivity.class);
              intent.putExtra("mode", 1);
              intent.putExtra("input_orid", result);
              if (result != null) {
                  MToast(NewHandleScanerActivity.this, result, Toast.LENGTH_SHORT);
              }
              intent.putExtra("titleName", getString(R.string.show_result));
              startActivity(intent);
              finish();
          }
          finish();
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
198
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
      private void setpower(String path, boolean on) {
          File file;
          FileWriter fr;
          try {
              file = new File(path);
              fr = new FileWriter(file);
              if (on)
                  fr.write("1");
              else
                  fr.write("0");
              fr.close();
          } catch (IOException e) {
              Log.e(TAG, e.toString());
          }
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
214
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
215
216
217
218
219
220
      @Override
      public void onBackPressed() {
          super.onBackPressed();
          close();
          this.finish();
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
221
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
222
223
224
225
226
      @Override
      protected void onResume() {
          super.onResume();
          setpower("/sys/class/gpio/gpio114/value", true);
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
227
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
228
      private class ReadThread extends Thread {
3c2353cd   杜方   1、畅游通核销app源码提交;
229
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
          @Override
          public void run() {
              super.run();
              while (!isInterrupted() && !isStop.get()) {
                  int size;
                  try {
                      byte[] buffer = new byte[64];
                      if (mInputStream == null)
                          return;
                      size = mInputStream.read(buffer);
                      if (size > 0) {
                          onDataReceived(buffer, size);
                      }
                  } catch (IOException e) {
                      e.printStackTrace();
                      return;
                  }
              }
          }
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
250
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
251
252
253
254
255
256
257
258
259
260
      @Override
      public void onPause() {
          // bContinue = false;
          try {
              Thread.sleep(600);
          } catch (InterruptedException e) {
          }
          // closeDrive();
          super.onPause();
          setpower("/sys/class/gpio/gpio114/value", false);
3c2353cd   杜方   1、畅游通核销app源码提交;
261
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
262
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
263
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
      private void close() {
          isStop.set(true);
          if (mOutputStream != null) {
              try {
                  mOutputStream.close();
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
          if (mOutputStream != null) {
              try {
                  mOutputStream.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          if (mSerialPort != null) {
              mSerialPort.close();
          }
          if (mReadThread != null)
              mReadThread.interrupt();
          DevicTool.getInstance().closeSerialPortNewHandset();
          mSerialPort = null;
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
289
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
290
291
292
293
294
      @Override
      protected void onDestroy() {
          close();
          super.onDestroy();
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
295
  
2707d233   杜方   1、畅游通核销app;修改扫二维码...
296
297
298
299
300
301
302
303
304
305
306
      private void DisplayError(int resourceId) {
          AlertDialog.Builder b = new AlertDialog.Builder(this);
          b.setTitle("Error");
          b.setMessage(resourceId);
          b.setPositiveButton("OK", new OnClickListener() {
              public void onClick(DialogInterface dialog, int which) {
                  finish();
              }
          });
          b.show();
      }
3c2353cd   杜方   1、畅游通核销app源码提交;
307
  }