蓝牙开锁示例

  1. if(mTTLockAPI.isConnected(mKey.getLockMac())) {
    	// 当前处于连接状态 直接发指令
        if(mKey.isAdmin())	// 管理员开门
            mTTLockAPI.unlockByAdministrator(null, openid, mKey.getLockVersion(), mKey.getAdminPs(), mKey.getUnlockKey(), mKey.getLockFlagPos(), System.currentTimeMillis(), mKey.getAesKeystr(), mKey.getTimezoneRawOffset());
        else	// 普通用户开门
            mTTLockAPI.unlockByUser(null, openid, mKey.getLockVersion(), mKey.getStartDate(), mKey.getEndDate(), mKey.getUnlockKey(), mKey.getLockFlagPos(), mKey.getAesKeystr(), mKey.getTimezoneRawOffset());
    } else { // 未连接进行连接
        mTTLockAPI.connect(mKey.getLockMac());
        bleSession.setOperation(Operation.CLICK_UNLOCK);
        bleSession.setLockmac(mKey.getLockMac());
    }
    
    if(mTTLockAPI.isConnected(mKey.getLockMac())) {
    	// In connected state, call unlock interface directly
        if(mKey.isAdmin())	// Admin unlock
            mTTLockAPI.unlockByAdministrator(null, openid, mKey.getLockVersion(), mKey.getAdminPs(), mKey.getUnlockKey(), mKey.getLockFlagPos(), System.currentTimeMillis(), mKey.getAesKeystr(), mKey.getTimezoneRawOffset());
        else	// User unlock
            mTTLockAPI.unlockByUser(null, openid, mKey.getLockVersion(), mKey.getStartDate(), mKey.getEndDate(), mKey.getUnlockKey(), mKey.getLockFlagPos(), mKey.getAesKeystr(), mKey.getTimezoneRawOffset());
    } else { // Connect lock
        mTTLockAPI.connect(mKey.getLockMac());
        bleSession.setOperation(Operation.CLICK_UNLOCK);
        bleSession.setLockmac(mKey.getLockMac());
    }
    

  2. @Override
    public void onDeviceConnected(ExtendedBluetoothDevice extendedBluetoothDevice) {
    	// uid为用户授权的openid,读取操作记录用来标识哪个用户开的门
    	if(localKey != null) {	// 本地存在锁
    	    if(localKey.isAdmin())
    	        mTTLockAPI.unlockByAdministrator(extendedBluetoothDevice, uid, localKey.getLockVersion(), localKey.getAdminPs(), localKey.getUnlockKey(), localKey.getLockFlagPos(), System.currentTimeMillis(), localKey.getAesKeystr(), localKey.getTimezoneRawOffset());
    	    else
    	        mTTLockAPI.unlockByUser(extendedBluetoothDevice, uid, localKey.getLockVersion(), localKey.getStartDate(), localKey.getEndDate(), localKey.getUnlockKey(), localKey.getLockFlagPos(), localKey.getAesKeystr(), localKey.getTimezoneRawOffset());
    	}
    }
    
    @Override
    public void onDeviceConnected(ExtendedBluetoothDevice extendedBluetoothDevice) {
    	// uid equivalent to openid. In operateLog identify user
    	if(localKey != null) {
    	    if(localKey.isAdmin())
    	        mTTLockAPI.unlockByAdministrator(extendedBluetoothDevice, uid, localKey.getLockVersion(), localKey.getAdminPs(), localKey.getUnlockKey(), localKey.getLockFlagPos(), System.currentTimeMillis(), localKey.getAesKeystr(), localKey.getTimezoneRawOffset());
    	    else
    	        mTTLockAPI.unlockByUser(extendedBluetoothDevice, uid, localKey.getLockVersion(), localKey.getStartDate(), localKey.getEndDate(), localKey.getUnlockKey(), localKey.getLockFlagPos(), localKey.getAesKeystr(), localKey.getTimezoneRawOffset());
    	}
    }
    

  3. @Override
    public void onUnlock(ExtendedBluetoothDevice extendedBluetoothDevice, int uid, int uniqueid, long lockTime, Error error) {
        if(error == Error.SUCCESS) {
            toast(getString(R.string.words_unlock_successed));
        } else toast(error.getErrorMsg());
    }
    }