initSDK method
Future<bool>
initSDK(
{ - required int sdkAppID,
- LogLevelEnum logLevel = LogLevelEnum.V2TIM_LOG_DEBUG,
- V2TimSDKListener? listener,
- String? initPath,
- String? logPath,
- required int uiPlatform,
- bool? showImLog,
- Map<String, dynamic>? networkInfo,
- Map<String, dynamic>? deviceInfo,
- int? mainThreadLooperPointer,
})
Implementation
Future<bool> initSDK({
required int sdkAppID,
LogLevelEnum logLevel = LogLevelEnum.V2TIM_LOG_DEBUG,
V2TimSDKListener? listener,
String? initPath,
String? logPath,
required int uiPlatform,
bool? showImLog,
Map<String, dynamic>? networkInfo,
Map<String, dynamic>? deviceInfo,
int? mainThreadLooperPointer,
}) async {
if (_isInitSDK) {
print('sdk has already been initialized');
return true;
}
await CommonUtils.init(getSDKAppID: getSDKAppID, getLoginUser: getLoginUser);
_sdkAppID = sdkAppID;
_initInternalSDKListener();
_initSimpleMessageListener();
TIMMessageManager.instance.init();
TIMConversationManager.instance.init();
TIMGroupManager.instance.init();
TIMCommunityManager.instance.init();
TIMFriendshipManager.instance.init();
TIMSignalingManager.instance.init();
NativeLibraryManager.registerPort();
addSDKListener(listener);
setUIPlatform(uiPlatform: uiPlatform);
setConfig(
logLevel: logLevel,
showImLog: showImLog,
);
if (networkInfo != null && networkInfo.isNotEmpty) {
setNetworkInfo(networkInfo: networkInfo);
}
// APIType::FlutterFFI: 0x1 << 6;
Map<String, dynamic> configMap = {};
configMap["sdk_config_config_file_path"] = initPath ?? _getDefaultInitPath();
configMap["sdk_config_log_file_path"] = logPath ?? _getDefaultLogPath();
configMap["sdk_config_api_type"] = 64;
if (deviceInfo != null && deviceInfo.isNotEmpty) {
print("deviceInfo: $deviceInfo");
configMap["sdk_config_device_type"] = deviceInfo["deviceType"];
configMap["sdk_config_brand_type"] = deviceInfo["deviceBrand"];
configMap["sdk_config_system_version"] = deviceInfo["systemVersion"];
}
if (mainThreadLooperPointer != null && mainThreadLooperPointer != 0) {
configMap["sdk_config_main_looper_pointer"] = mainThreadLooperPointer;
}
Pointer<Char> jsonSdkConfig = Tools.string2PointerChar(json.encode(configMap));
int initResult = NativeLibraryManager.bindings.DartInitSDK(sdkAppID, jsonSdkConfig);
_isInitSDK = initResult == TIMResult.TIM_SUCC.value;
return _isInitSDK;
}