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); + } + } }