增加了HttpDns的初始化操作

This commit is contained in:
董宏宇
2021-01-20 11:20:46 +08:00
parent 4276b0cc41
commit 87ed5c2a56
4 changed files with 136 additions and 42 deletions

View File

@@ -1,18 +1,18 @@
package com.mogo.cloud;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import static com.mogo.cloud.passport.MoGoAiCloudClientConfig.NET_MODE_QA;
import java.util.Random;
/**
* 鉴权sdk测试页面
@@ -41,13 +41,22 @@ public class PassPortActivity extends AppCompatActivity {
tvSn = findViewById(R.id.tvSn);
tvToken = findViewById(R.id.tvToken);
Random random = new Random();
double randomLat = random.nextDouble();
double randomLon = random.nextDouble();
MoGoAiCloudClientConfig clientConfig = new MoGoAiCloudClientConfig();
clientConfig.setNetMode(NET_MODE_QA);
clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_QA);
clientConfig.setThirdLogin(true);
clientConfig.setShowDebugLog(true);
clientConfig.setThirdPartyAppKey("bydauto");
clientConfig.setThirdPartyDeviceId("bydauto");
clientConfig.setLat(randomLat);
clientConfig.setLon(randomLon);
clientConfig.setCityCode("010");
clientConfig.setLoopCheckDelay(15 * 1000);
mMoGoAiCloudClient = MoGoAiCloudClient.getInstance().init(this,clientConfig);
mMoGoAiCloudClient = MoGoAiCloudClient.getInstance().init(this, clientConfig);
btnRefreshToken.setOnClickListener(v -> mMoGoAiCloudClient.refreshToken(new IMoGoTokenCallback() {
@Override

View File

@@ -32,4 +32,6 @@ dependencies {
// passport
implementation 'com.zhidao.tcloginsdk:tclogin:1.1.5.1'
api project(path: ':foudations:mogo-httpdns')
}

View File

@@ -5,6 +5,9 @@ import android.util.Log;
import androidx.annotation.Keep;
import com.mogo.cloud.httpdns.MogoHttpDnsClient;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
import com.zhidao.tcloginsdk.LoginManager;
import com.zhidao.tcloginsdk.model.ThirdLoginParam;
import com.zhidao.tcloginsdk.model.TokenData;
@@ -18,7 +21,8 @@ public class MoGoAiCloudClient {
private static final String TAG = "MoGoAiCloudClient";
private static volatile MoGoAiCloudClient sInstance;
private MoGoAiCloudClientConfig mConfig;
private MoGoAiCloudClientConfig mAiCloudClientConfig;
private MogoHttpDnsConfig mHttpDnsConfig;
private Context mContext;
@@ -41,31 +45,33 @@ public class MoGoAiCloudClient {
/**
* 初始化
*
* @param context 上下文
* @param config 配置信息
* @param context 上下文
* @param aiCloudClientConfig 配置信息
*/
public MoGoAiCloudClient init(Context context, MoGoAiCloudClientConfig config) {
public MoGoAiCloudClient init(Context context,
MoGoAiCloudClientConfig aiCloudClientConfig
) {
mContext = context;
mConfig = config;
// 设置网络环境
LoginManager.getInstance(context).setNetEnviron(config.getNetMode());
mAiCloudClientConfig = aiCloudClientConfig;
// 设置鉴权的网络环境
LoginManager.getInstance(context).setNetEnviron(aiCloudClientConfig.getNetMode());
return sInstance;
}
public MoGoAiCloudClientConfig getConfig() {
return mConfig;
public MoGoAiCloudClientConfig getAiCloudClientConfig() {
return mAiCloudClientConfig;
}
public void refreshToken(final IMoGoTokenCallback tokenCallback) {
if (mConfig != null) {
if (mAiCloudClientConfig != null) {
ThirdLoginParam thirdLoginParam = ThirdLoginParam.of(
mConfig.getThirdPartyDeviceId(),
mConfig.getThirdPartyAppKey(),
mConfig.getThirdPartySignSecret()
mAiCloudClientConfig.getThirdPartyDeviceId(),
mAiCloudClientConfig.getThirdPartyAppKey(),
mAiCloudClientConfig.getThirdPartySignSecret()
);
LoginManager.getInstance(mContext).login(
mConfig.isThirdLogin(),
mAiCloudClientConfig.isThirdLogin(),
thirdLoginParam,
new LoginCallback() {
@Override
@@ -74,10 +80,25 @@ public class MoGoAiCloudClient {
tokenCallback.onTokenGot(result.token, result.sn);
}
if (mConfig != null) {
mConfig.sn = result.sn;
mConfig.token = result.token;
// 变量赋值
if (mAiCloudClientConfig != null) {
mAiCloudClientConfig.sn = result.sn;
mAiCloudClientConfig.token = result.token;
}
// 初始化HttpDNS
mHttpDnsConfig =
new MogoHttpDnsConfig()
.setContext(mContext)
.setSn(mAiCloudClientConfig.sn)
.setEnv(mAiCloudClientConfig.getNetMode())
.setShowDebugLog(mAiCloudClientConfig.isShowDebugLog())
.setCurrentLocation(() -> new HttpDnsSimpleLocation(
mAiCloudClientConfig.getCityCode(),
mAiCloudClientConfig.getLat(),
mAiCloudClientConfig.getLon()))
.setLoopCheckDelay(mAiCloudClientConfig.getLoopCheckDelay());
MogoHttpDnsClient.INSTANCE.init(mHttpDnsConfig);
}
@Override

View File

@@ -1,34 +1,16 @@
package com.mogo.cloud.passport;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
/**
* SDK 中的参数
*/
public class MoGoAiCloudClientConfig {
/**
* 研发环境
*/
public static final int NET_MODE_DEV = 1;
/**
* 测试环境
*/
public static final int NET_MODE_QA = 2;
/**
* 演示环境
*/
public static final int NET_MODE_DEMO = 4;
/**
* 生产环境
*/
public static final int NET_MODE_RELEASE = 3;
/**
* 网络模式
*/
private int sNetMode = NET_MODE_RELEASE;
private int sNetMode = MogoHttpDnsConfig.HTTP_DNS_ENV_RELEASE;
/**
* 设备ID
@@ -49,6 +31,11 @@ public class MoGoAiCloudClientConfig {
*/
private boolean thirdLogin;
/**
* 是否打印日志
*/
private boolean isShowDebugLog = true;
/**
* 服务器分配给应用的令牌,用于网络请求校验
*/
@@ -59,6 +46,23 @@ public class MoGoAiCloudClientConfig {
*/
String sn = "";
/**
* 城市编码
*/
private String cityCode;
/**
* 当前的纬度
*/
private double lat;
/**
* 当前的经度
*/
private double lon;
/**
* 循环检测延时时间
*/
private long mLoopCheckDelay;
public String getThirdPartyDeviceId() {
return thirdPartyDeviceId;
}
@@ -106,4 +110,62 @@ public class MoGoAiCloudClientConfig {
public String getSn() {
return sn;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLon() {
return lon;
}
public void setLon(double lon) {
this.lon = lon;
}
public boolean isShowDebugLog() {
return isShowDebugLog;
}
public void setShowDebugLog(boolean showDebugLog) {
isShowDebugLog = showDebugLog;
}
public long getLoopCheckDelay() {
return mLoopCheckDelay;
}
public void setLoopCheckDelay(long loopCheckDelay) {
mLoopCheckDelay = loopCheckDelay;
}
@Override
public String toString() {
return "MoGoAiCloudClientConfig{" +
"sNetMode=" + sNetMode +
", thirdPartyDeviceId='" + thirdPartyDeviceId + '\'' +
", thirdPartyAppKey='" + thirdPartyAppKey + '\'' +
", thirdPartySignSecret='" + thirdPartySignSecret + '\'' +
", thirdLogin=" + thirdLogin +
", isShowDebugLog=" + isShowDebugLog +
", token='" + token + '\'' +
", sn='" + sn + '\'' +
", cityCode='" + cityCode + '\'' +
", lat=" + lat +
", lon=" + lon +
", mLoopCheckDelay=" + mLoopCheckDelay +
'}';
}
}