001package net.gdface.mtfsdk;
002
003import net.gdface.license.BaseLicenseManager;
004import net.gdface.license.RegStatus;
005import net.gdface.license.RegisterException;
006import net.gdface.utils.Judge;
007
008import static net.gdface.mtfsdk.MtfAndroidArmBridge.*;
009
010/**
011 * MTFSDK android/arm 授权信息管理对象基类 
012 * @author guyadong
013 *
014 */
015public class DefaultMtfLicenseManager extends BaseLicenseManager {
016        public DefaultMtfLicenseManager() {
017        }
018
019        @Override
020        public boolean validateLicense(String licenseKey, String licenseCode) {
021                if(!Judge.isEmpty(licenseKey) && !Judge.isEmpty(licenseCode)){
022                        MtfAndroidArmBridge tmp = new MtfAndroidArmBridge();
023                        SdkStatus fdSdkStatus = fdInit(licenseKey,licenseCode,tmp);
024                        if(fdSdkStatus == SdkStatus.SDK_INIT_OK){
025                                FDDestroy(tmp.detectHandle[0]);
026                                return true;
027                        }
028                }
029                return false;
030        }
031
032        @Override
033        public String getDevicesSerial(String licenseKey) throws RegisterException {
034                byte[] buffer = new byte[128];
035                // 输出缓冲区清0
036                for (int i = 0; i < buffer.length; i++) {
037                    buffer[i] = 0;
038                }
039                int res = FSGetDevicesSerial(buffer, licenseKey.getBytes());
040                
041                if (res > 0) {
042                        return new String(buffer, 0, res);
043                } 
044                throw new RegisterException(RegStatus.REG_FAIL_TO_GET_DEVICE_SERIAL);
045        }
046
047        @Override
048        public boolean licenseOnlineSupported(){
049                return true;
050        }
051}