跳到主要内容

SDK初始化

更新时间:2025-06-06 19:03:37

SDK初始化

使用RTCX-Android-AppSDK前必要操作,请在用户授权后再进行SDK初始化操作

SDK实始化存在网络交互,请确保有可用网络

设置接入区域

版本要求:v1.4.1

RTCX平台的云端服务为多区域部署,根据您使用IoTSmart.InitConfig.regionType参数的取值区分中国大陆或海外

注意

中国大陆与海外都要接入时需要在控制台上分别创建两个不同的应用

import com.polaris.iot.appsdk.libsdkcfg.IoTSmart;

IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig();
initConfig.setRegionType(IoTSmart.RegionType.REGION_CHINA_ONLY)

区域类型

enum class RegionType {
/**
* 海外
*/
REGION_ALL,

/**
* 中国大陆
*/
REGION_CHINA_ONLY
}

设置日志开关

设置日志开关的状态,取值如下。

  • true:表示显示所有日志
  • fasle:表示只显示error日志
IoTSmart.setDebug(boolean debug);

示例

import com.polaris.iot.appsdk.libaccount.OpenAccount;
import com.polaris.iot.appsdk.libapiclient.callback.IoTTokenInvalidCallback;
import com.polaris.iot.appsdk.libcommon.constants.IoTSDKError;
import com.polaris.iot.appsdk.libcommon.log.IoTLogger;
import com.polaris.iot.appsdk.libcommon.utils.ThreadManager;
import com.polaris.iot.appsdk.libplayer.IoTMeidaPlayer;
import com.polaris.iot.appsdk.libsdkcfg.IoTSDKInitResultCallback;
import com.polaris.iot.appsdk.libsdkcfg.IoTSmart;
import com.polaris.iot.appsdk.xsdemoapp.constans.Constants;

// 初始化参数配置
public class XsDemoApplication extends Application {

IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig();
//不设置RegionType默认是国内
initConfig.setRegionType(IoTSmart.RegionType.REGION_CHINA_ONLY)
initConfig.setDebug(true);

IoTSmart.AppKeyConfig keyConfig = new IoTSmart.AppKeyConfig();
keyConfig.setAppKey(Constants.APP_KEY);//替换为平台申请的appKey
keyConfig.setAppSecret(Constants.APP_SECRET);//替换为平台申请的appSecret
initConfig.setAppKeyConfig(keyConfig);


IoTSmart.init(this, initConfig, new IoTSDKInitResultCallback() {
@Override
public void onFailure(@NonNull IoTSDKError exception) {
IoTLogger.e(TAG, "init iot sdk failure", exception);
Toast.makeText(getApplicationContext(), "SDK初始化失败,请退出并重新打开应用", Toast.LENGTH_LONG).show();
}

@Override
public void onSuccess() {
IoTLogger.d(TAG, "init iot sdk success");
//监听登录失效
OpenAccount.setTokenInvalidCallback(new IoTTokenInvalidCallback() {
@Override
public void onTokenInvalid() {
Toast.makeText(getApplicationContext(), "登录失效,请重新登录", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
}
});


}

设置国际化语言

版本要求:v1.4.1

import com.polaris.iot.appsdk.libsdkcfg.IoTSmart;

IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig();
initConfig.setRegionType(IoTSmart.RegionType.REGION_CHINA_ONLY)

RTCX平台目前支持中文(zh_CN)、 英文(en_US)、法文(fr_FR)、德文(de_DE)、日文(ja_JP)、韩文(ko_KR)、西班牙文(es_ES)、俄文(ru_RU)、意大利文(it_IT),共9种语言。

  • 设置语言

统一切换API网关、用户账号、推送、插件等SDK的语言环境。

import com.polaris.iot.appsdk.libsdkcfg.IoTSmart;
import java.util.Locale;

IoTSmart.setLanguage(String languagename);

IoTSmart.setLanguage(Locale locale);
  • 获取当前语言

    获取API网关、用户账号、推送、插件等SDK的语言环境。

  String language = IoTSmart.getLanguage();
// 查看SDK当前设置的语言,如果您没有设置过语言,此处会返回当前系统语言

设置国家地区

版本要求:v1.4.1

注意

接入区域配置为中国大陆

  • 默认中国,可不需要设置国家地区

接入区域配置为海外

  • SDK初始化成功后,需要在用户注册/登录前显示国家地区列表供用户选择,设置完国家后方可注册/登录

通过用户选择的国家地区,帮助您选择业务服务器最快连接的区域。

  1. 获取国家地区列表
   IoTSmart.getCountryList(callback: OnResultListener<List<Country>?>);
  1. 设置国家地区
   IoTSmart.setCountry(Country country, OnResultListener<Boolean> callback)

Country country = IoTSmart.getCountry()

示例

showLoading("正在设置国家,请稍候");
IoTSmart.setCountry(country, new OnResultListener<Boolean>() {
@Override
public void onResult(Boolean result) {
hideLoading();
runOnUiThread(() -> {
Button btnCountrySel = (Button) findViewById(R.id.btnCountrySel);
btnCountrySel.setText(country.getAreaName() + ">>");
});
}

@Override
public void onError(@NonNull IoTSDKError error) {
hideLoading();
showAlert("设置国家失败");
IoTLogger.e(TAG, "setCountry error", error);
}
});

国家

/**
* 国家或地区
*
* @property code 区号
* @property pinyin 拼音
* @property isoCode 三位字母标识
* @property areaName 地区名称
* @property domainAbbreviation 两位字母标识
* @constructor Create empty Country
*/
data class Country(
var code: String,
var pinyin: String,
var isoCode: String,
var areaName: String,
var domainAbbreviation: String
) : Serializable

获取App当前连接的服务器ID

版本要求:v1.4.1

当自有App可以连接多个业务服务器时,为了App最佳的体验效果,可以根据当前登录服务器来选择业务服务器。此时,您可以通过以下接口获取App当前连接的国家(即登录服务器ID),从而帮助您选择其他业务服务器最快连接的区域。

IoTSmart.getRegionId()