From 87ed5c2a56d254cfed4a0b24e67f596bcef52ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 20 Jan 2021 11:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86HttpDns=E7=9A=84?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/cloud/PassPortActivity.java | 17 ++- foudations/mogo-passport/build.gradle | 2 + .../cloud/passport/MoGoAiCloudClient.java | 55 ++++++--- .../passport/MoGoAiCloudClientConfig.java | 104 ++++++++++++++---- 4 files changed, 136 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/com/mogo/cloud/PassPortActivity.java b/app/src/main/java/com/mogo/cloud/PassPortActivity.java index a60c1aa..8984454 100644 --- a/app/src/main/java/com/mogo/cloud/PassPortActivity.java +++ b/app/src/main/java/com/mogo/cloud/PassPortActivity.java @@ -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 diff --git a/foudations/mogo-passport/build.gradle b/foudations/mogo-passport/build.gradle index 48f8453..1b53aea 100644 --- a/foudations/mogo-passport/build.gradle +++ b/foudations/mogo-passport/build.gradle @@ -32,4 +32,6 @@ dependencies { // passport implementation 'com.zhidao.tcloginsdk:tclogin:1.1.5.1' + api project(path: ':foudations:mogo-httpdns') + } \ No newline at end of file diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java index 7259275..d376695 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -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 diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java index 215923d..9838a30 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java @@ -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 + + '}'; + } }