@Override public void onClick(View v) { // TODO 自动生成的方法存根 btSent = false; String bufString = "QUERY□" + barcode.getText().toString() + "□" + "DH001" + "□" + "UD" + "□" + "CK001"; barString = barcode.getText().toString().trim(); if (isconnect) { isSearchinf = true; mysocket.writeData(SYS.SenData(bufString, fwq, androidID)); } else { SearchINF(barcode.getText().toString()); } }
/*条码扫描返回的结果处理*/ protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String bufString = ""; switch (requestCode) { case SCANNIN_GREQUEST_CODE: if (resultCode == RESULT_OK) { Bundle bundle = data.getExtras(); barcode.setText(bundle.getString("result")); btSent = false; bufString = "QUERY□" + barcode.getText().toString() + "□" + "DH001" + "□" + "UD" + "□" + "CK001"; barString = barcode.getText().toString().trim(); /*发送查询指令*/ if (isconnect) { isSearchinf = true; mysocket.writeData(SYS.SenData(bufString, fwq, androidID)); } else { SearchINF(barcode.getText().toString()); } } break; case REQUEST_CONNECT_DEVICE: if (resultCode == RESULT_OK) { String address = data.getExtras().getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); WriteReadSD.writex(address, "BTMAC", log.fdir); _device = MainActivity._bluetooth.getRemoteDevice(address); RKScan.mChatService.connect(_device); } break; case REQUEST_ENABLE_BT: // 判断蓝牙是否启用 if (resultCode == Activity.RESULT_OK) { setupChat(); } else { finish(); } break; case 4: if (resultCode == RESULT_OK) { String address = data.getExtras().getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); _device = MainActivity._bluetooth.getRemoteDevice(address); WriteReadSD.writex(address, "PTMAC", log.fdir); // 存放打印机的地址 RKScan.printService.connect(_device); } break; } }
public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 54: byte[] writeBuf = (byte[]) msg.obj; String writeMessage = new String(writeBuf); System.out.println(writeMessage); break; case 17: // 获取接收到的数据 String name = msg.getData().getString("REC"); String num = ""; int len = 0; String sqlString = new String().format("talk%s%s%s%s,", "□", androidID, "□条码,", barString); String sql = new String().format("talk%s%s%s%s,%s", "□", androidID, "□", barString, "无-"); String[] string = null; String[] buf = null; if (isSearchinf) { isSearchinf = false; if (SYS.indexofString(name, sqlString)) { buf = SYS.splitString(name.trim(), "■"); try { len = SYS.crc_r(buf[0].getBytes(bm), buf[0].getBytes(bm).length); len = len % 99; if (len == Integer.parseInt(buf[1].trim())) { string = SYS.splitString(buf[0], ","); b1.setText(string[2]); b2.setText(string[4]); b3.setText(string[6]); b4.setText(string[8]); b5.setText(string[10]); b6.setText(string[12]); b7.setText(string[14]); b8.setText(string[16]); b9.setText(string[18]); b10.setText(string[20]); inf1.setText(string[3]); inf2.setText(string[5]); inf3.setText(string[7]); inf4.setText(string[9]); inf5.setText(string[11]); inf6.setText(string[13]); inf7.setText(string[15]); inf8.setText(string[17]); inf9.setText(string[19]); inf10.setText(string[21]); isSearchOK = true; } else { isSearchOK = false; } } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); isSearchOK = false; } } else if (SYS.indexofString(name, sql)) { isSearchOK = false; SearchINF(barcode.getText().toString()); isSearchOK = false; } else { isSearchOK = false; } } else { isSent = false; if (Running >= 20) num = "01"; else num = String.format("%02d", Running + 1); String bufx = "talk" + "□" + androidID + "□" + num + "□"; try { len = SYS.crc_r(bufx.getBytes(bm), bufx.getBytes(bm).length); len = len % 99; bufx = bufx + "■" + String.format("%02d", len) + "■"; if (bufx.equals(name)) { SQLiteDatabase dbe = LoginOpenHelper.getInstance(mContext, log.DB_NAME).getWritableDatabase(); ContentValues values = new ContentValues(); values.put("ISsent", "0"); // 这个表示的是已传 dbe.update("SENT", values, "BAR=? and BH=?", new String[] {SentData, BH}); Log.e("条码:", SentData); SentData = ""; BH = ""; if (Running >= 20) Running = 1; else Running++; if (MainActivity.sentpovit < MainActivity.sentall) MainActivity.sentpovit++; yc.setText("已传:" + MainActivity.sentpovit + ""); wc.setText("未传:" + (MainActivity.sentall - MainActivity.sentpovit) + ""); } else { if (Running > 20) Running++; } } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); if (Running > 20) Running++; } } break; case 1: // 这个是蓝牙状态的,用蓝牙名称来区分是蓝牙枪还是打印机 String btname = msg.getData().getString(MainActivity.DEVICE_NAME); switch (msg.arg1) { case BluetoothChatService.STATE_CONNECTED: if (SYS.indexofString(btname, BTNAME) || SYS.indexofString(btname, "HC")) { btzt.setText(R.string.title_connected_to); RKScan.Isbt = true; } else { RKScan.isPrint = true; printTextView.setText(R.string.printer_connected_to); } break; case BluetoothChatService.STATE_CONNECTING: if (SYS.indexofString(btname, BTNAME) || SYS.indexofString(btname, "HC")) btzt.setText(R.string.title_connecting); else { printTextView.setText(R.string.printer_connecting); } break; case BluetoothChatService.STATE_LISTEN: if (SYS.indexofString(btname, BTNAME) || SYS.indexofString(btname, "HC")) { RKScan.Isbt = false; btzt.setText(R.string.title_not_connected); } else { RKScan.isPrint = false; printTextView.setText(R.string.printer_not_connected); // printerTextView.setText(R.string.printer_connecting); } break; case BluetoothChatService.STATE_NONE: if (SYS.indexofString(btname, BTNAME) || SYS.indexofString(btname, "HC")) { btzt.setText(R.string.title_not_connected); RKScan.Isbt = false; } else { RKScan.isPrint = false; printTextView.setText(R.string.printer_not_connected); } break; } break; case 4: // 保存该连接装置的名字 String name1 = msg.getData().getString(MainActivity.DEVICE_NAME); System.out.println("蓝牙名称是:" + name1); if (SYS.indexofString(name1, BTNAME) || SYS.indexofString(name1, "HC")) { btzt.setText(R.string.title_connected_to); RKScan.Isbt = true; } else { RKScan.isPrint = true; printTextView.setText(R.string.printer_connected_to); } break; case 16: switch (msg.arg1) { case 0: ConnectButton.setText(R.string.Noconnected); // vibrator.vibrate(800); isconnect = false; // 网络连接失败 break; case 1: ConnectButton.setText(R.string.Noconnected); // vibrator.vibrate(800); isconnect = false; break; case 2: ConnectButton.setText(R.string.connectting); break; case 3: ConnectButton.setText(R.string.SKconnected); isconnect = true; break; case 7: ConnectButton.setText(R.string.Noconnected); isconnect = false; break; case 6: if (isSearchinf) { isSearchinf = false; SearchINF(barcode.getText().toString()); } if (isSent) { if (Running > 21) Running++; } break; default: break; } break; case 13: byte[] readBuf = (byte[]) msg.obj; try { String s = new String(readBuf, 0, msg.arg1, bm); recvMessageserver += s; if (recvMessageserver .substring(recvMessageserver.length() - 1, recvMessageserver.length()) .equals("\n")) { recvMessageClient = recvMessageserver; String bar = ""; String bufString = ""; bar = SYS.BTistrue(recvMessageserver); recvMessageserver = ""; if (bar.length() > 0) { btSent = true; MainActivity.playScanOK(mContext); recvMessageClient = ""; barcode.setText(bar); barString = bar; inf1.setText(""); inf2.setText(""); inf3.setText(""); inf4.setText(""); inf5.setText(""); inf6.setText(""); inf7.setText(""); inf8.setText(""); inf9.setText(""); inf10.setText(""); bufString = "QUERY□" + barcode.getText().toString() + "□" + "DH001" + "□" + "UD" + "□" + "CK001"; /*发送查询指令*/ if (isconnect) { isSearchinf = true; mysocket.writeData(SYS.SenData(bufString, fwq, androidID)); } else { SearchINF(barcode.getText().toString()); } } else { String btpowerString = SYS.BTisPOWER(recvMessageClient); if (btpowerString.length() > 0) { MainActivity.BTPOWER = btpowerString; BTpower.setText(R.string.power); BTpower.append(MainActivity.BTPOWER + ""); BTpower.append("%"); } else { /*dis.setText(""); sView.scrollTo(0,dis.getMeasuredHeight()); SYS.disPlay(sView, dis,R.string.SB+"\n");*/ return; } } BTpower.setText(R.string.power); BTpower.append(MainActivity.BTPOWER + ""); BTpower.append("%"); } } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } break; case 38: Log.i("基本资料进来", Running + ""); SentData = ""; BH = ""; // LoginOpenHelper tb=new LoginOpenHelper(JBZL.this,"AndroidPosJxc.db", null, 1); SQLiteDatabase db = LoginOpenHelper.getInstance(mContext, log.DB_NAME).getReadableDatabase(); Cursor cursor = null; try { cursor = db.query( "SENT", new String[] {"BAR", "ISsent", "BH"}, "ISsent= ?", new String[] {"1"}, null, null, null); if (cursor != null) { if (cursor.getCount() != 0 && cursor.moveToFirst()) { SentData = cursor.getString(cursor.getColumnIndex("BAR")); BH = cursor.getString(cursor.getColumnIndex("BH")); if (MainActivity.sentall > MainActivity.sentpovit && isconnect && !isSent) { Log.i("发送的数据:", SentData + ":" + BH); mysocket.writeData(SYS.SenData(SentData, fwq, androidID, Running)); isSent = true; } else { return; } } } else { Log.i("没有啊", "*****"); } } catch (Exception e) { Log.i("也没有啊", "*****"); // return ; } finally { if (cursor != null) { cursor.close(); } } break; default: break; } }