API

Open API

/*

* Scanning Bluetooth device

* @input: nScanTimer: scanning time

* @input: nScanType: 0-->return all devices in list at the end 1-->return device one by one right after finding out a device

* @callback: onDeviceFound()

* @return:

*/

public int scanDevice(final int nScanTimer, final int nScanType);

/*

* Stop Scanning device

* @input:

* @callback:

* @return:

*/

public int stopScanDevice();

/*

* Connect Bluetooth device

* @input: address -- MAC address of Bluetooth device

* @callback: onBlueState(), Bluetooth related callback

* @return:

*/

public int connectDevice(final String address);

/*

* Disconnect connected Bluetooth device

* @input:

* @callback: onBlueState(), Bluetooth related callback

* @return:

*/

public int disConnectBlueDevice();

/*

* Release bluetooth related resource before system termination

* @input:

* @callback:

* @return:

*/

public void closeResource();

<Functionality>

/*

* Get Information of Bluetooth Device

* @input:

* @callback: onDeviceInfo()

* @return:

*/

public synchronized int getDeviceInfo();

/*

* Input passowrd on swipCardSucess()

* @input: bPasskey

* @callback: ???????

* @return:

*/

Public synchronized int inputPassword(String bPassKey);

/*

* Start Transaction

* @input: dataBuffer -- content of card

* @input: timeout -- timeout of transaction

* @input: amount -- amount of transaction

* @callback: trigger -> onWaitingForCard() --> onDetectIC() --> onReadCardData() --> swipCardState() and swipCardSucess()

* @return:

*/

public synchronized int goPayTxnStart (byte[] dataBuffer ,long timeout, long amount);

/*

* Terminate Transaction

* @input:

* @callback:

* @return:

*/

public synchronized int goPayTxnCancel ();

/*

* Write Main Key

* @input: bMainKey

* @callback: onLoadMasterKeySucc()

* @return:

*/

public synchronized int writeMainKey(byte[] bMainKey);

//Example
String order = "12345678901234567890123456789012";
byte[] sendBuf = hexStr2Bytes(order);            
BluetoothComm.writeMainKey(sendBuf);

/*

* Write Work Key

* @input: bWorkKey

* @callback: onLoadWorkKeySucc()

* @return:

*/

public synchronized int writeWorkKey(byte[] bWorkKey);

/*

* Get Mac Information of Bluetooth Device

* @input: bDataKey

* @callback: getMacSucess(),

* @return:

*/

public synchronized int getMac(byte[] bDataKey)

/*

* Get status of Battery

* @input:

* @callback: onResult()

* @return:

*/

public synchronized int readBattery()

/*

* Non-standard Card Testing

* @input: bDataKey

* @callback: onReadUnderStandCardData() --> when reading the card

* @return:

*/

public synchronized int noUnderstandCard()

Callback

//Initialization and setting this pointer

BluetoothCommmanager BluetoothComm = null;
BluetoothComm = BluetoothCommmanager.getInstance(this, this);

//Main Key

@Override
public void onLoadMasterKeySucc(Boolean isSucess) {
   //TODOAuto-generated method stub
   showLogMessage("主密钥设置成功");
}

//Work Key

@Override
public void onLoadWorkKeySucc(Boolean isSucess) {
   //TODOAuto-generated method stub
   showLogMessage("工作密钥设置成功");
}

//MAC address data

@Override
public void getMacSucess(String macdata) {
   //TODOAuto-generated method stub
   showLogMessage("MAC:"+macdata.toString());
}

//Swipe callback when succeed

@Override
public void swipCardSucess(String cardNumber) {
   showLogMessage("PAN:"+cardNumber.toString());
}

/***** Bluetooth related callback <START> *****/

// Return status : connecting device

public void onBluetoothIng() {}

// Return status : device connected successfully

public void onBluetoothConected() {}

// Return status : device connected unsuccessfully

public void onBluetoothConectedFail() {}

// Return status : device disconnected

public void onBluetoothDisconnected() {}

// Return status : scan timeout

public void onScanTimeout() {}

// Return status : Bluetooth power Off

public void onBluetoothPowerOff() {}

// Return status : Bluetooth power On

public void onBluetoothPowerOn() {}

/***** Bluetooth related callback <END> *****/

//Wait for sliding card or inserting card

@Override
public void onWaitingForCardSwipe()
{
   showLogMessage("请刷卡/插卡/挥卡...");
}

//Detecting IC card insertion

public void onDetectIC()
{
   showLogMessage("IC卡插入...");
}

//Non standard card reading

public void onErrorMessage()
{
   showLogMessage("数据为空");
}

//Related Card reading status

public void swipCardState(int nResult) {
// TODO Auto-generated method stub
    String strTips="";
    switch(nResult)
    {
        case BluetoothCommmanager.SWIPE_SUCESS:
            strTips = strTips + "刷卡正常";
            break;
        case BluetoothCommmanager.SWIPE_DOWNGRADE://芯片卡降级刷卡
            strTips = strTips + "刷卡降级";    
            break;
        case BluetoothCommmanager.SWIPE_CANCEL:
            strTips = strTips + "用户取消";
            count = 2;
            break;
        case BluetoothCommmanager.SWIPE_TIMEOUT_STOP:
            strTips =strTips + "超时退出";
            break;
        case BluetoothCommmanager.SWIPE_IC_FAILD:
            strTips =strTips + "IC卡处理数据失败";    
            break;
        case BluetoothCommmanager.SWIPE_NOICPARM:
            strTips =strTips + "无IC卡参数";
            break;
        case BluetoothCommmanager.SWIPE_STOP:
            strTips =strTips + "交易终止";        
            break;
        case BluetoothCommmanager.SWIPE_IC_REMOVE:
            strTips =strTips + "加密失败,用户拔出IC卡";    
            break;
        case BluetoothCommmanager.SWIPE_LOW_POWER:
            strTips =strTips + "低电量,不允许交易";
            break;
        case BluetoothCommmanager.BLUE_POWER_OFF:
            strTips =strTips + "已关机";    
            break;
        case BluetoothCommmanager.BLUE_SDK_ERROR:
            strTips =strTips + "SDK文件丢失,SDK异常";    
            break;
        case BluetoothCommmanager.BLUE_DEVICE_ERROR:
            strTips =strTips + "设备不合法";    //数据解析异常
            break;
        default:
            break;
        }
    showLogMessage("提示:" +strTips);   
}

//Return error meg

@Override
public void onError(int nResult) {
    //TODOAuto-generated method stub
    showLogMessage("操作失败,错误代码:"+Integer.toString(nResult));
}

//Return timeout

@Override
 public void onTimeout() {
     showLogMessage("Timeout");
 }

//Return the status of IC card and battery

@Override
public void onResult(int Code, int nResult, String MsgData){
    // TODO Auto-generated method stub
    switch(Code)
    {
        case BluetoothCommmanager.ICBRUSH:
        case BluetoothCommmanager.Battery:
            if (nResult==0x00){
                showLogMessage("Battery:"+MsgData.toString());
            }else if(nResult ==-1){
                showLogMessage("充电中");
            }else{
                showLogMessage("Battery失败,错误代码:" +Integer.toString(nResult));
            }
            break;

        //以下是IC卡功能 BEGIN===
        //检测IC卡是否在位
        case BluetoothCommmanager.IC_GETSTATUS:    
            if (nResult==0x00)
                showLogMessage("IC 状态:卡插入" );
            else
                showLogMessage("IC 状态: 无卡");
            break;
        //以上是IC卡功能 END==

        default:
            showLogMessage("获取失败,错误类型 :"+Integer.toString(Code) +",错误代码:"+nResult);
            break;
    }            
}

//Return all process data as Map

@Override
public void onReadCardData(Map hashcard){
    Message updateMessage = mMainMessageHandler.obtainMessage();
    updateMessage.obj="";
    updateMessage.what=R.id.btnAPass;
    updateMessage.sendToTarget();
    //换种方式显示数据
    mapcard=(Map)hashcard;
    showLogMessage("加密信息:");    
    String PAN= mapcard.get("PAN");
    String Amount=mapcard.get("Amount");
    String SnData=mapcard.get("SnData");
    String PanSeqNo=mapcard.get("PanSeqNo");
    String Downgrad=mapcard.get("Downgrad");
    String AsciiPwd=mapcard.get("AsciiPwd");
    String IcData55=mapcard.get("IcData55");
    String Encrytrack3=mapcard.get("Encrytrack3");
    String Encrytrack2=mapcard.get("Encrytrack2");
    String SzentryMode=mapcard.get("SzEntryMode");
    String ExpireDate=mapcard.get("ExpireDate");
    String Track2=mapcard.get("Track2");
    String CardType=mapcard.get("CardType");
    String Pinblock=mapcard.get("Pinblock");
    String Track3=mapcard.get("Track3");
    String Track1=mapcard.get("Track1");
    CardInfo cardInfo=new CardInfo(PAN, Amount, SnData, PanSeqNo, Downgrad, AsciiPwd, IcData55, Encrytrack3, Encrytrack2, SzentryMode, ExpireDate, Track2, CardType, Pinblock, Track3,Track1);
    showLogMessage(cardInfo.toString());

    if(count<10001){ showlogmessage("当前第"+count+"次刷卡");="" byte[]="" set55tag="hexStr2Bytes("9f26010095019f4102");" bluetoothcomm.gopaytxnstart="" (set55tag="" ,="" wait_timeout,namount);="" count++;="" }else="" if(count="">=10001){
        showLogMessage("停止刷卡");
        count=2;
        //BluetoothComm.MagnCancel();
    }
}

//Return Bluetooth status

@Override
public void onBlueState() {
    Log.d("onDeviceState --------",Integer.toString(nState));
    bOpenDevice =false;    
    if (nState == BluetoothCommmanager.BLUE_SCAN_NODEVICE){
        showLogMessage("未找到蓝牙设备...");
    }else if (nState == BluetoothCommmanager.BLUE_BONDING){
        bOpenDevice =false;
        showLogMessage("正在绑定蓝牙");
    }else if (nState == BluetoothCommmanager.BLUE_BONDED){
        bOpenDevice =false;
        showLogMessage("蓝牙绑定成功");
    }
}

//Return Bluetooth device found

@Override
public void onDeviceFound(finalArrayList mDevices){
    //It is a list of Bluetooth Device
}

results for ""

    No results matching ""