APPSDK 初始化说明

Android SDK 初始化

  1. SDK 申请到的 License 需要配置在 AndroidManifest.xml 内,以 meta-data 格式传入。
	<application>

        <meta-data
            android:name="LET_LICENSE"
            android:value="Your_License" />
        <meta-data
            android:name="LET_CHANNEL"
            android:value="" />

		......

    </application>
  1. SDK 初始化需要配置相应的参数,如果不配置,则都采用默认参数。
public class BLApplcation extends Application{

	@Override
    public void onCreate() {
        super.onCreate();

        sdkInit();
    }

   /**
     * APPSDK 初始化函数
     */
    private void sdkInit(){

        // 配置参数类
        BLConfigParam blConfigParam = new BLConfigParam();
        // 1. 设置日志级别,默认为 4 全部打印
        blConfigParam.put(BLConfigParam.CONTROLLER_LOG_LEVEL, "4");
        // 2. 设置底层打印日志级别,默认为 4 全部打印
        blConfigParam.put(BLConfigParam.CONTROLLER_JNI_LOG_LEVEL, "4");
        // 3. 设置脚本保存目录, 默认在 ../let/ 目录下
        blConfigParam.put(BLConfigParam.SDK_FILE_PATH, "");
        // 4. 设置本地控制超时时间,默认 3000ms
        blConfigParam.put(BLConfigParam.CONTROLLER_LOCAL_TIMEOUT, "3000");
        // 5. 设置远程控制超时时间,默认 5000ms
        blConfigParam.put(BLConfigParam.CONTROLLER_REMOTE_TIMEOUT, "5000");
        // 6. 设置控制重试次数,默认 1
        blConfigParam.put(BLConfigParam.CONTROLLER_SEND_COUNT, "1");
        // 7. 设置设备控制支持的网络模式,默认 -1 都支持。  0 - 局域网控制,非0 - 局域网/远程都支持。
        blConfigParam.put(BLConfigParam.CONTROLLER_NETMODE, "-1");
        // 8. 设置脚本和UI文件下载资源平台。 默认 0 老平台。  1 - 新平台
        blConfigParam.put(BLConfigParam.CONTROLLER_SCRIPT_DOWNLOAD_VERSION, "1");
        // 9. 批量查询设备在线状态最小设备数
        blConfigParam.put(BLConfigParam.CONTROLLER_QUERY_COUNT, "8");
        // 10. 使用APPService服务,此功能为新集群,若为老集群,请设置为 0
        blConfigParam.put(BLConfigParam.APP_SERVICE_ENABLE, "1");
        // 11. 设置云端服务器访问域名,如不设置,则使用SDK解析License出的lid自行拼接
        blConfigParam.put(BLConfigParam.APP_SERVICE_HOST, "https://Your service host");
        // 12. 设置设备连接服务器信息
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("tcp", "xxx");
        jsonObject.put("http","xxx");
        blConfigParam.put(BLConfigParam.DEVICE_CONNECTION_SERVER_HOST, jsonObject.toJSONString());

        // 初始化核心库
        BLLet.init(this, blConfigParam);

        // 初始化之后,获取 lid 和 companyId ,用于其他类库的初始化
        String lid = BLLet.getLicenseId();
        String companyId = BLLet.getCompanyid();

        // 初始化家庭库
        BLFamily.init(companyId, lid);
        // 初始化账户库
        BLAccount.init(companyId, lid);
        // 初始化红外码库
        BLIRCode.init(lid, blConfigParam);

        // 添加登录成功回调函数
        BLAccount.addLoginListener(BLLet.Controller.getLoginListener());
        BLAccount.addLoginListener(BLFamily.getLoginListener());
        BLAccount.addLoginListener(BLIRCode.getLoginListener());
    }

}

iOS SDK 初始化

iOS 初始化的时候,传入申请到的 License, 配置相关参数如下:

- (void)loadAppSdk {

    //全局参数配置
    BLConfigParam *config = [BLConfigParam sharedConfigParam];
    config.appServiceEnable = 1;                                    // 2019年之后的APP版本都使用集群方式
    config.controllerScriptDownloadVersion = 1;                     // 2019年之后的APP都使用新的脚本下载服务
    config.appServiceHost = @"https://Your service host";           // 配置APP连接集群地址
    config.controllerSendCount = 1;                                 // 设备控制重试次数
    config.controllerLocalTimeout = 3000;                           // 设备控制局域网超时时间
    config.controllerRemoteTimeout = 5000;                          // 设备控制远程超时时间
    config.deviceConnectServiceInfo = @[
    @"tcp":@"xxx",
    @"http":@"xxx"
    ]                                                               // 设置设备连接服务器信息

    //BLLetCore
    self.let = [BLLet sharedLetWithLicense:SDK_LICENSE];           // Init APPSDK
    [self.let setDebugLog:BL_LEVEL_ALL];                           // Set APPSDK debug log level
    [self.let.controller setSDKRawDebugLevel:BL_LEVEL_ALL];        // Set DNASDK debug log level

    [self.let.controller startProbe:3000];                         // Start probe device
    self.let.controller.delegate = self;
    
    NSString *licenseId = self.let.configParam.licenseId;
    NSString *companyId = self.let.configParam.companyId;
    
    //BLLetAccount
    self.account = [BLAccount sharedAccount];
    
    //BLLetFamily
    self.familyController = [BLFamilyController sharedManager];
    
    //BLLetIRCode
    self.ircode = [BLIRCode sharedIrdaCode];
}