diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 1a0aaec..df338e2 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -23,7 +23,6 @@
-
diff --git a/app/src/main/java/com/mogo/cloud/MainActivity.java b/app/src/main/java/com/mogo/cloud/MainActivity.java
index 532cf07..5dbbaac 100644
--- a/app/src/main/java/com/mogo/cloud/MainActivity.java
+++ b/app/src/main/java/com/mogo/cloud/MainActivity.java
@@ -29,21 +29,9 @@ public class MainActivity extends AppCompatActivity {
tvSn = findViewById(R.id.tvSn);
tvToken = findViewById(R.id.tvToken);
- initPassportInfo();
-
btnJumpPassPort = findViewById(R.id.btnJumpPassPort);
btnJumpPassPort.setOnClickListener(v -> {
- MoGoAiCloudClient.getInstance().refreshToken(new IMoGoTokenCallback() {
- @Override
- public void onTokenGot(String token, String sn) {
- initPassportInfo();
- }
-
- @Override
- public void onError(int code, String msg) {
-
- }
- });
+ MoGoAiCloudClient.getInstance().refreshToken();
});
btnJumpNetWorkPort = findViewById(R.id.btnJumpNetWorkPort);
@@ -57,6 +45,18 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(MainActivity.this, RealTimeActivity.class);
startActivity(intent);
});
+
+ MoGoAiCloudClient.getInstance().addTokenCallbacks(new IMoGoTokenCallback() {
+ @Override
+ public void onTokenGot(String token, String sn) {
+ initPassportInfo();
+ }
+
+ @Override
+ public void onError(int code, String msg) {
+ initPassportInfo();
+ }
+ });
}
/**
diff --git a/app/src/main/java/com/mogo/cloud/MoGoApplication.java b/app/src/main/java/com/mogo/cloud/MoGoApplication.java
index 18958d4..c8d7b35 100644
--- a/app/src/main/java/com/mogo/cloud/MoGoApplication.java
+++ b/app/src/main/java/com/mogo/cloud/MoGoApplication.java
@@ -5,17 +5,22 @@ import androidx.multidex.MultiDexApplication;
import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
import com.mogo.cloud.httpdns.listener.IHttpDnsCurrentLocation;
+import com.mogo.cloud.passport.IMoGoTokenCallback;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import org.jetbrains.annotations.Nullable;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Random;
/**
*
*/
public class MoGoApplication extends MultiDexApplication {
+
+
@Override
public void onCreate() {
super.onCreate();
@@ -40,7 +45,7 @@ public class MoGoApplication extends MultiDexApplication {
// 设置从蘑菇AI开放平台获取的APPKey
clientConfig.setThirdPartyAppKey("bydauto");
// 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备)
- clientConfig.setThirdPartyDeviceId("F803EB2046PZD00149");
+ clientConfig.setThirdPartyDeviceId("bydauto");
// 设置循环检测间隔时间
clientConfig.setLoopCheckDelay(15 * 1000);
@@ -54,7 +59,8 @@ public class MoGoApplication extends MultiDexApplication {
});
// 初始化SDK,可以设置状态回调来监听
- MoGoAiCloudClient.getInstance().init(this, clientConfig, null);
+ MoGoAiCloudClient.getInstance().init(
+ this, clientConfig);
}
}
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 b476607..3739706 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
@@ -14,6 +14,9 @@ import com.zhidao.thirdlogin.model.ThirdLoginParam;
import com.zhidao.thirdlogin.model.TokenData;
import com.zhidao.thirdlogin.network.LoginCallback;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 蘑菇AI云平台SDK入口
*/
@@ -26,9 +29,10 @@ public class MoGoAiCloudClient {
private MogoHttpDnsConfig mHttpDnsConfig;
private Context mContext;
+ private List mTokenCallbacks;
private MoGoAiCloudClient() {
-
+ mTokenCallbacks = new ArrayList<>();
}
@Keep
@@ -51,13 +55,12 @@ public class MoGoAiCloudClient {
* @param tokenCallback 获取令牌回调,使用端可根据回调的方法判断是否获取令牌成功,可为空
*/
public MoGoAiCloudClient init(Context context,
- MoGoAiCloudClientConfig aiCloudClientConfig,
- final IMoGoTokenCallback tokenCallback
+ MoGoAiCloudClientConfig aiCloudClientConfig
) {
mContext = context;
mAiCloudClientConfig = aiCloudClientConfig;
// 刷新令牌
- refreshToken(tokenCallback);
+ refreshToken();
return sInstance;
}
@@ -69,7 +72,7 @@ public class MoGoAiCloudClient {
return mAiCloudClientConfig;
}
- public void refreshToken(final IMoGoTokenCallback tokenCallback) {
+ public void refreshToken() {
if (mAiCloudClientConfig != null) {
ThirdLoginParam thirdLoginParam = ThirdLoginParam.of(
mAiCloudClientConfig.getThirdPartyDeviceId(),
@@ -91,17 +94,17 @@ public class MoGoAiCloudClient {
// 本地存储
SpStorage.setSn(result.sn);
SpStorage.setToken(result.token);
-
- if (tokenCallback != null) {
- tokenCallback.onTokenGot(result.token, result.sn);
- }
-
// 变量赋值
if (mAiCloudClientConfig != null) {
mAiCloudClientConfig.sn = result.sn;
mAiCloudClientConfig.token = result.token;
}
+ // 循环调用将数据传出去
+ for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) {
+ tokenCallback.onTokenGot(result.token, result.sn);
+ }
+
// 初始化HttpDNS
mHttpDnsConfig =
new MogoHttpDnsConfig()
@@ -122,7 +125,12 @@ public class MoGoAiCloudClient {
Log.e(TAG, "║ ErrorCode:" + code);
Log.e(TAG, "║ ErrorMessage:" + msg);
Log.e(TAG, "═════════════════════════════════════");
- if (tokenCallback != null) {
+ // 变量赋值
+ if (mAiCloudClientConfig != null) {
+ mAiCloudClientConfig.sn = "";
+ mAiCloudClientConfig.token = "";
+ }
+ for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) {
tokenCallback.onError(code, msg);
}
}
@@ -157,5 +165,15 @@ public class MoGoAiCloudClient {
}
}
+ /**
+ * 添加Token 回调
+ *
+ * @param iMoGoTokenCallback 回调监听
+ */
+ public void addTokenCallbacks(IMoGoTokenCallback iMoGoTokenCallback) {
+ if (mTokenCallbacks != null) {
+ mTokenCallbacks.add(iMoGoTokenCallback);
+ }
+ }
}