实现蓝牙搜索功能

        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;
 }
}




26113225_Upvo.jpg
转载:http://www.adobex.com/android/source/details/00000412.htm

转载于:https://my.oschina.net/androidcode/blog/105077

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值