|
蓝牙开锁示例
-
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());
}
-
@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());
}
}
-
@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());
}
}
|