BluetoothActivity
package zrsf.mis.client.activity; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class BluetoothActivity extends Activity { public static String TAG = ""; public void discoveryBluetooth(){ BluetoothAdapter mAdapter= BluetoothAdapter.getDefaultAdapter(); if(!mAdapter.isEnabled()){ Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); this.startActivityForResult(enabler, Activity.RESULT_FIRST_USER); // mAdapter.enable(); } mAdapter.startDiscovery(); BroadcastReceiver mReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { Log.v(TAG, "find device:" + device.getName() + device.getAddress()); } } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { setTitle(""); // if (mNewDevicesAdapter.getCount() == 0) { // // Log.v(TAG,"find over"); // // } } } }; } }MISMain
package zrsf.mis.client; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MISMain extends Activity { public static final int FIND_BLUETOOTH = 1; public static final int BACK = 2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tvbtAddr = (TextView)findViewById(R.id.bluetoothAddress); tvbtAddr.setText("000000000"); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, FIND_BLUETOOTH, 1, R.string.find_bluetooth); menu.add(0, BACK, 2, R.string.back); return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if(FIND_BLUETOOTH == item.getItemId()){ System.out.println("--------------->BluetoothAddress"); }else if(BACK == item.getItemId()){ System.out.println("-------------->Back"); } return super.onMenuItemSelected(featureId, item); } }InvoicePrint
package zrsf.mis.util; import java.io.OutputStream; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Calendar; import java.util.Date; public class InvoicePrint { private static InvoicePrint instance; public static InvoicePrint getInstance(){ if(instance == null){ instance = new InvoicePrint(); } return instance; } public URLConnection conn = null; public OutputStream dos = null; public URL url = new URL("btspp://"+ "" +":1"); public InvoicePrint() { super(); try { conn = url.openConnection(); dos = conn.getOutputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 鎵撳嵃鍙戠エ */ public boolean printInvoice(){ int j = 13; int i = 0; byte[] headbtye = null; byte[] infobtye = null; String[] headInfo = new String[j]; String[] printInfo = new String[j]; headInfo[i] = "鍙戠エ鍙风爜锛?; printInfo[i++] = LocaleContent.INVOICE_NO; //0 headInfo[i] = "椤惧鍚嶇О锛?; printInfo[i++] = LocaleContent.PAYER; //1 headInfo[i] = "鐢佃瘽锛?; printInfo[i++] = LocaleContent.PAYER_MOBILE; //2 headInfo[i] = "鏌ヨ鐮侊細"; printInfo[i++] = LocaleContent.INVOICE_QUERY_CODE; //3 headInfo[i] = "闃蹭吉鐮侊細"; printInfo[i++] = LocaleContent.TAX_NO; //4 // headInfo[i] = "鏈哄櫒鍙风爜锛?; // printInfo[i++] = LocaleContent.MACHINE_NO; //4 headInfo[i] = "绋庡姟璇佸彿锛?; printInfo[i++] = LocaleContent.TAXREGISTERNO; //5 headInfo[i] = "寮€绁ㄥ崟浣嶏細"; printInfo[i++] = LocaleContent.PAYEE; //6 headInfo[i] = "椤圭洰"; printInfo[i++] = LocaleContent.XM; //7 headInfo[i] = "閲戦"; printInfo[i++] = LocaleContent.SMALL_SUM; //8 headInfo[i] = "灏忓啓鍚堣锛氾骏"; printInfo[i++] = LocaleContent.SMALL_SUM; //9 headInfo[i] = "澶у啓鍚堣锛?; printInfo[i++] = LocaleContent.DX; //10 headInfo[i] = "寮€绁ㄤ汉锛?; printInfo[i++] = LocaleContent.NAME; //11 headInfo[i] = "寮€绁ㄦ椂闂达細"; printInfo[i++] = this.getDateStr(LocaleContent.INVOICE_START_DATE)+" "; //12 try { if(conn == null){ url = "btspp://"+ LocaleContent.PRINT_ADD +":1"; conn = (StreamConnection)Connector.open(url); dos = conn.openDataOutputStream(); } dos.write(0x1D); dos.write(0x0C); //閫侀粦鏍囩焊鑷虫墦鍗拌捣濮嬩綅缃? dos.flush(); for(int x = 0; x < j; x++){ if(x == 6 || x == 7 || x == 8 || x == 10){ if(x == 6){ headbtye = headInfo[x].getBytes("gb2312"); dos.writeInt(headbtye.length); dos.write(headbtye); int length = printInfo[x].length(); if(length <= 12){ infobtye = printInfo[x].getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); dos.write(0x0A); }else if(12 < length && length <= 24){ infobtye = printInfo[x].substring(0, 12).getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); infobtye = printInfo[x].substring(12, length).getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); dos.write(0x0A); } dos.write(0x0A); } if(x == 7){ //璁剧疆姹夊瓧鍥涘€嶆墦鍗版ā寮? 寮€濮? // dos.write(0x1C); // dos.write(0x57); // dos.write(1); // 0 鍙栨秷 1 璁剧疆 //缁撴潫 String str6 = headInfo[x] + "\t\t\t" + headInfo[x + 1]; infobtye = str6.getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); dos.write(0x0A); infobtye = printInfo[x].getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); for(int m=0;m<3;m++){ dos.write(0x09); } infobtye = printInfo[x + 1].getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); //璁剧疆姹夊瓧鍥涘€嶆墦鍗版ā寮? 寮€濮? // dos.write(0x1C); // dos.write(0x57); // dos.write(0); // 0 鍙栨秷 1 璁剧疆 //缁撴潫 } if(x == 8){ dos.write(0x0A); dos.write(0x0A); } if(x == 10){ String str = headInfo[x] + printInfo[x]; int length = str.length(); if(length <= 12){ infobtye = str.getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); dos.write(0x0A); }else if(12 < length && length <= 24){ infobtye = str.substring(0, 12).getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); infobtye = str.substring(12, length).getBytes("gb2312"); dos.writeInt(infobtye.length); dos.write(infobtye); dos.write(0x0A); } } }else{ headbtye = headInfo[x].getBytes("gb2312"); infobtye = printInfo[x].getBytes("gb2312"); dos.writeInt(headbtye.length); dos.write(headbtye); dos.writeInt(infobtye.length); dos.write(infobtye); if(x == 1 || x == 2 || x == 3 || x == 9 || x == 10){ dos.write(0x0A); } } } dos.write(0x0A); dos.flush(); dos.write(0x1D); //璧扮焊鍒板垏绾镐綅缃? dos.write(0x56); dos.write(66); dos.write(0x0); dos.flush(); return true; } catch (IOException e) { e.printStackTrace(); return false; } // finally{ // this.closeConn(); // } } /** * 鍏抽棴杩炴帴 */ public void closeConn(){ if(dos != null){ try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * Loog鍨嬭浆鏃ユ湡鏍煎紡 * @return */ public String getDateStr(String log){ Date date = new Date(Long.parseLong(log)); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); String YEAR = String.valueOf(calendar.get(Calendar.YEAR)).length()==1?"0"+String.valueOf(calendar.get(Calendar.YEAR)):String.valueOf(calendar.get(Calendar.YEAR)); String MONTH = String.valueOf((calendar.get(Calendar.MONTH)) + 1).length()==1?"0"+String.valueOf((calendar.get(Calendar.MONTH)) + 1):String.valueOf((calendar.get(Calendar.MONTH)) + 1); String DATE = String.valueOf(calendar.get(Calendar.DATE)).length()==1?"0"+String.valueOf(calendar.get(Calendar.DATE)):String.valueOf(calendar.get(Calendar.DATE)); // String HOUR_OF_DAY = String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)).length()==1?"0"+String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)):String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)); // String MINUTE = String.valueOf(calendar.get(Calendar.MINUTE)).length()==1?"0"+String.valueOf(calendar.get(Calendar.MINUTE)):String.valueOf(calendar.get(Calendar.MINUTE)); // String SECOND = String.valueOf(calendar.get(Calendar.SECOND)).length()==1?"0"+String.valueOf(calendar.get(Calendar.SECOND)):String.valueOf(calendar.get(Calendar.SECOND)); String str = YEAR + "-" + MONTH + "-" + DATE; // + " " + // HOUR_OF_DAY + ":" + // MINUTE + ":" + // SECOND; return str; } }