From 1ca1f1c8794ca8e1898f025fbce0dc6da5c6b9f5 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 3 Mar 2021 17:47:21 +0800 Subject: [PATCH] comptible socket and passport service in AISDK --- .../java/com/mogo/cloud/MoGoApplication.java | 14 +- .../cloud/wifi/WifiBroadCastReceiver.java | 2 +- foudations/mogo-passport/build.gradle | 4 +- .../com/mogo/cloud/passport/IPassport.java | 8 + .../cloud/passport/MoGoAiCloudClient.java | 149 +++++++----------- .../passport/MoGoAiCloudClientConfig.java | 22 +-- .../mogo/cloud/passport/PassportManager.java | 35 ++++ .../internal/InternalPassportManager.java | 82 ++++++++++ .../passport/third/ThirdPassportManager.java | 94 +++++++++++ foudations/mogo-socket/build.gradle | 4 +- .../internal/InternalSocketManager.java | 11 +- .../java/com/mogo/cloud/DevicesUtils.java | 29 ++++ 12 files changed, 330 insertions(+), 124 deletions(-) create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IPassport.java create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/PassportManager.java create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/internal/InternalPassportManager.java create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/third/ThirdPassportManager.java diff --git a/app/src/main/java/com/mogo/cloud/MoGoApplication.java b/app/src/main/java/com/mogo/cloud/MoGoApplication.java index d83003d..15396ba 100644 --- a/app/src/main/java/com/mogo/cloud/MoGoApplication.java +++ b/app/src/main/java/com/mogo/cloud/MoGoApplication.java @@ -11,9 +11,6 @@ import com.mogo.cloud.passport.MoGoAiCloudClient; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.cloud.util.Devices; - -import java.util.ArrayList; -import java.util.List; import java.util.Random; /** @@ -41,17 +38,16 @@ public class MoGoApplication extends MultiDexApplication { clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_QA); // 设置是否是第三APP登录,false:自有车机 true:外部三方车机 - clientConfig.setThirdLogin(false); - // 设置长链AppId //todo 需要卸载智慧驾驶 - clientConfig.setSocketAppId("com.mogo.launcher"); - - // 设置是否输出日志 - clientConfig.setShowDebugLog(true); + clientConfig.setThirdLogin(true); // 设置从蘑菇AI开放平台获取的APPKey clientConfig.setThirdPartyAppKey("wbvpzgar"); // 设置AI云平台分配给三方应用的签名密钥,需要从AI云平台申请 // 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备) clientConfig.setThirdPartyDeviceId(Devices.getSn()); + // 设置应用服务AppId 长链、鉴权 //todo 需要卸载智慧驾驶、行车记录仪 + clientConfig.setServiceAppId("com.mogo.launcher"); + // 设置是否输出日志 + clientConfig.setShowDebugLog(true); // 设置循环检测间隔时间 clientConfig.setLoopCheckDelay(15 * 1000); // 设置是否属于高精定位设备 diff --git a/app/src/main/java/com/mogo/cloud/wifi/WifiBroadCastReceiver.java b/app/src/main/java/com/mogo/cloud/wifi/WifiBroadCastReceiver.java index c125f36..a62f8ce 100644 --- a/app/src/main/java/com/mogo/cloud/wifi/WifiBroadCastReceiver.java +++ b/app/src/main/java/com/mogo/cloud/wifi/WifiBroadCastReceiver.java @@ -10,7 +10,7 @@ import com.mogo.cloud.utils.logger.Logger; public class WifiBroadCastReceiver extends BroadcastReceiver { - private WifiBroadCastReceiver() { + public WifiBroadCastReceiver() { Logger.d(TAG, "WifiBroadCastReceiver init"); } diff --git a/foudations/mogo-passport/build.gradle b/foudations/mogo-passport/build.gradle index 71a5476..4e33a77 100644 --- a/foudations/mogo-passport/build.gradle +++ b/foudations/mogo-passport/build.gradle @@ -27,8 +27,10 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - // passport + // passport-for-sdk 外部SDK版本 implementation 'com.zhidao.thirdlogin:third-login:1.0.2' + // passport-for-internal 内部SDK版本 + implementation 'com.zhidao.accountservice:account-sdk:1.0.18' if (Boolean.valueOf(RELEASE)) { api "com.mogo.cloud:httpdns:${MOGO_HTTPDNS_VERSION}" diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IPassport.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IPassport.java new file mode 100644 index 0000000..a89e92f --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IPassport.java @@ -0,0 +1,8 @@ +package com.mogo.cloud.passport; + +public interface IPassport { + + void onSuccess(String token, String sn); + + void onError(int code, String msg); +} 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 208e2d3..d3e1b6c 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 @@ -9,11 +9,6 @@ import com.mogo.cloud.httpdns.MogoHttpDnsClient; import com.mogo.cloud.httpdns.MogoHttpDnsConfig; import com.mogo.cloud.utils.logger.LogLevel; import com.mogo.cloud.utils.logger.Logger; -import com.zhidao.thirdlogin.Environment; -import com.zhidao.thirdlogin.LoginManager; -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; @@ -25,14 +20,14 @@ import java.util.List; */ @Keep public class MoGoAiCloudClient { - private static final String TAG = "MoGoAiCloudClient"; + public static final String TAG = "MoGoAiCloudClient"; private static volatile MoGoAiCloudClient sInstance; private MoGoAiCloudClientConfig mAiCloudClientConfig; private MogoHttpDnsConfig mHttpDnsConfig; private Context mContext; - private List mTokenCallbacks; + private final List mTokenCallbacks; private MoGoAiCloudClient() { mTokenCallbacks = new ArrayList<>(); @@ -85,99 +80,63 @@ public class MoGoAiCloudClient { Log.i(TAG, "═══════════════刷新Token═════════════"); } - if (mAiCloudClientConfig != null) { - ThirdLoginParam thirdLoginParam = ThirdLoginParam.of( - mAiCloudClientConfig.getThirdPartyDeviceId(), - mAiCloudClientConfig.getThirdPartyAppKey() - ); - - LoginCallback loginCallback = new LoginCallback() { - @Override - public void onSuccess(TokenData.TokenResult result) { - if (mAiCloudClientConfig.isShowDebugLog()) { - Log.i(TAG, "═════════════════════════════════════"); - Log.i(TAG, "║ PassportVersion:" + com.mogo.cloud.passport.BuildConfig.VERSION_NAME); - Log.i(TAG, "║ HttpDnsVersion:" + com.mogo.cloud.httpdns.BuildConfig.VERSION_NAME); - Log.i(TAG, "║ ThirdLoginVersion:" + com.zhidao.thirdlogin.BuildConfig.VERSION_NAME); - Log.i(TAG, "║ MoGo鉴权成功 "); - Log.i(TAG, "║ SN:" + result.sn); - Log.i(TAG, "║ Token:" + result.token); - Log.i(TAG, "═════════════════════════════════════"); - } - - // 变量赋值 - if (mAiCloudClientConfig != null) { - mAiCloudClientConfig.setSn(result.sn); - mAiCloudClientConfig.setToken(result.token); - } - - // 循环调用将数据传出去 - for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { - tokenCallback.onTokenGot(result.token, result.sn); - } - - // 初始化HttpDNS - mHttpDnsConfig = - new MogoHttpDnsConfig() - .setContext(mContext) - .setSn(mAiCloudClientConfig.getSn()) - .setEnv(mAiCloudClientConfig.getNetMode()) - .setShowDebugLog(mAiCloudClientConfig.isShowDebugLog()) - .setCurrentLocation(mAiCloudClientConfig.getIHttpDnsCurrentLocation()) - .setLoopCheckDelay(mAiCloudClientConfig.getLoopCheckDelay()); - MogoHttpDnsClient.INSTANCE.init(mHttpDnsConfig); + PassportManager.getInstance().refreshToken(mContext, new IPassport() { + @Override + public void onSuccess(String token, String sn) { + if (mAiCloudClientConfig.isShowDebugLog()) { + Log.i(TAG, "═════════════════════════════════════"); + Log.i(TAG, "║ PassportVersion:" + com.mogo.cloud.passport.BuildConfig.VERSION_NAME); + Log.i(TAG, "║ HttpDnsVersion:" + com.mogo.cloud.httpdns.BuildConfig.VERSION_NAME); + Log.i(TAG, "║ ThirdLoginVersion:" + com.zhidao.thirdlogin.BuildConfig.VERSION_NAME); + Log.i(TAG, "║ MoGo鉴权成功 "); + Log.i(TAG, "║ SN:" + sn); + Log.i(TAG, "║ Token:" + token); + Log.i(TAG, "═════════════════════════════════════"); } - @Override - public void onFailure(int code, String msg) { - if (mAiCloudClientConfig.isShowDebugLog()) { - Toast.makeText(mContext, "MoGo鉴权失败", Toast.LENGTH_SHORT).show(); - Log.e(TAG, "═════════════════════════════════════"); - Log.e(TAG, "║ MoGo鉴权失败 "); - Log.e(TAG, "║ ErrorCode:" + code); - Log.e(TAG, "║ ErrorMessage:" + msg); - Log.e(TAG, "═════════════════════════════════════"); - } - // 变量赋值 - if (mAiCloudClientConfig != null) { - mAiCloudClientConfig.setSn(""); - mAiCloudClientConfig.setToken(""); - } - for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { - tokenCallback.onError(code, msg); - } + // 变量赋值 + if (mAiCloudClientConfig != null) { + mAiCloudClientConfig.setSn(sn); + mAiCloudClientConfig.setToken(token); } - }; - if (mAiCloudClientConfig.isShowDebugLog()) { - Log.w(TAG, "loginCallback:" + loginCallback); + // 循环调用将数据传出去 + for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { + tokenCallback.onTokenGot(token, sn); + } + + // 初始化HttpDNS + mHttpDnsConfig = + new MogoHttpDnsConfig() + .setContext(mContext) + .setSn(mAiCloudClientConfig.getSn()) + .setEnv(mAiCloudClientConfig.getNetMode()) + .setShowDebugLog(mAiCloudClientConfig.isShowDebugLog()) + .setCurrentLocation(mAiCloudClientConfig.getIHttpDnsCurrentLocation()) + .setLoopCheckDelay(mAiCloudClientConfig.getLoopCheckDelay()); + MogoHttpDnsClient.INSTANCE.init(mHttpDnsConfig); } - Environment environment; - switch (mAiCloudClientConfig.getNetMode()) { - case MogoHttpDnsConfig.HTTP_DNS_ENV_DEV: - environment = Environment.dev; - break; - case MogoHttpDnsConfig.HTTP_DNS_ENV_QA: - case MogoHttpDnsConfig.HTTP_DNS_ENV_DEMO: - environment = Environment.qa; - break; - default: - environment = Environment.release; - break; + @Override + public void onError(int code, String msg) { + if (mAiCloudClientConfig.isShowDebugLog()) { + Toast.makeText(mContext, "MoGo鉴权失败", Toast.LENGTH_SHORT).show(); + Log.e(TAG, "═════════════════════════════════════"); + Log.e(TAG, "║ MoGo鉴权失败 "); + Log.e(TAG, "║ ErrorCode:" + code); + Log.e(TAG, "║ ErrorMessage:" + msg); + Log.e(TAG, "═════════════════════════════════════"); + } + // 变量赋值 + if (mAiCloudClientConfig != null) { + mAiCloudClientConfig.setSn(""); + mAiCloudClientConfig.setToken(""); + } + for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { + tokenCallback.onError(code, msg); + } } - - LoginManager.getInstance().login( - mContext, - environment, - thirdLoginParam, - loginCallback); - } else { - Log.e(TAG, "═════════════════════════════════════"); - Log.e(TAG, "║ MoGo 鉴权失败 "); - Log.e(TAG, "║ 请配置 MoGoAiCloudClientConfig 信息"); - Log.e(TAG, "═════════════════════════════════════"); - } + }); } /** @@ -186,9 +145,7 @@ public class MoGoAiCloudClient { * @param iMoGoTokenCallback 回调监听 */ public void addTokenCallbacks(IMoGoTokenCallback iMoGoTokenCallback) { - if (mTokenCallbacks != null) { - mTokenCallbacks.add(iMoGoTokenCallback); - } + mTokenCallbacks.add(iMoGoTokenCallback); } } 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 323fca6..c1ccfd4 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 @@ -88,9 +88,9 @@ public class MoGoAiCloudClientConfig { private boolean mIsAccuracyDevice; /** - * 应用长连接id + * 应用服务AppId,包括长链、鉴权 */ - private String mSocketAppId; + private String mServiceAppId; /** * 设置HttpDns的位置监听 @@ -333,21 +333,21 @@ public class MoGoAiCloudClientConfig { } /** - * 获取应用长连接id + * 获取应用服务AppId * - * @return String 长连接id + * @return String AppId */ - public String getSocketAppId() { - return mSocketAppId; + public String getServiceAppId() { + return mServiceAppId; } /** - * 设置应用长连接id,三方应用无需设置 + * 设置应用服务AppId,包括长链、鉴权,三方应用无需设置 * - * @param socketAppId 设置应用长连接id + * @param serviceAppId 设置应用服务AppId */ - public void setSocketAppId(String socketAppId) { - mSocketAppId = socketAppId; + public void setServiceAppId(String serviceAppId) { + mServiceAppId = serviceAppId; } /** @@ -383,7 +383,7 @@ public class MoGoAiCloudClientConfig { ", mLoopCheckDelay=" + mLoopCheckDelay + ", mIsUseExternalLocation=" + mIsUseExternalLocation + ", mIsAccuracyDevice=" + mIsAccuracyDevice + - ", mSocketAppId='" + mSocketAppId + '\'' + + ", mServiceAppId='" + mServiceAppId + '\'' + ", mIHttpDnsCurrentLocation=" + mIHttpDnsCurrentLocation + '}'; } diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/PassportManager.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/PassportManager.java new file mode 100644 index 0000000..da2dee1 --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/PassportManager.java @@ -0,0 +1,35 @@ +package com.mogo.cloud.passport; + +import android.content.Context; + +import com.mogo.cloud.passport.internal.InternalPassportManager; +import com.mogo.cloud.passport.third.ThirdPassportManager; + +public class PassportManager { + + private static volatile PassportManager mInstance; + private final MoGoAiCloudClientConfig cloudClientConfig; + + private PassportManager() { + cloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig(); + } + + public static PassportManager getInstance() { + if (mInstance == null) { + synchronized (PassportManager.class) { + if (mInstance == null) { + mInstance = new PassportManager(); + } + } + } + return mInstance; + } + + public void refreshToken(Context context, IPassport passport) { + if (cloudClientConfig.isThirdLogin()) { + ThirdPassportManager.getInstance().refreshToken(context, passport); + } else { + InternalPassportManager.getInstance(context).refreshToken(passport); + } + } +} diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/internal/InternalPassportManager.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/internal/InternalPassportManager.java new file mode 100644 index 0000000..8d0ee31 --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/internal/InternalPassportManager.java @@ -0,0 +1,82 @@ +package com.mogo.cloud.passport.internal; + +import android.content.Context; +import android.text.TextUtils; + +import com.mogo.cloud.DevicesUtils; +import com.mogo.cloud.httpdns.MogoHttpDnsConfig; +import com.mogo.cloud.passport.IPassport; +import com.mogo.cloud.passport.MoGoAiCloudClient; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.cloud.utils.logger.Logger; +import com.zhidao.account.sdk.AccountClientManager; +import com.zhidao.account.sdk.BusinessType; +import com.zhidao.account.sdk.Environment; +import com.zhidao.account.sdk.callback.TicketInfoCallback; + +import static com.mogo.cloud.passport.MoGoAiCloudClient.TAG; + +public class InternalPassportManager { + + private static volatile InternalPassportManager mInstance; + private IPassport mPassport; + private final MoGoAiCloudClientConfig mAiCloudClientConfig; + + private InternalPassportManager(Context context) { + mAiCloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig(); + String appId = mAiCloudClientConfig.getServiceAppId(); + if (TextUtils.isEmpty(appId)) { + Logger.e(TAG, "需要初始化 passport AppId"); + return; + } + AccountClientManager.init(context.getApplicationContext(), getNetEnvironment(), BusinessType.toc_login, appId); + } + + public static InternalPassportManager getInstance(Context context) { + if (mInstance == null) { + synchronized (InternalPassportManager.class) { + if (mInstance == null) { + mInstance = new InternalPassportManager(context); + } + } + } + return mInstance; + } + + public void refreshToken(IPassport passport) { + this.mPassport = passport; + AccountClientManager.getTicket(new TicketInfoCallback() { + @Override + public void onSuccess(String ticket) { + if (mPassport != null) { + mPassport.onSuccess(ticket, DevicesUtils.getSn()); + } + } + + @Override + public void onFailure(int code, String msg) { + if (mPassport != null) { + mPassport.onError(code, msg); + } + } + }); + } + + private Environment getNetEnvironment() { + int mode = mAiCloudClientConfig.getNetMode(); + Environment environment; + switch (mode) { + case MogoHttpDnsConfig.HTTP_DNS_ENV_DEV: + environment = Environment.dev; + break; + case MogoHttpDnsConfig.HTTP_DNS_ENV_QA: + case MogoHttpDnsConfig.HTTP_DNS_ENV_DEMO: + environment = Environment.qa; + break; + default: + environment = Environment.release; + break; + } + return environment; + } +} diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/third/ThirdPassportManager.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/third/ThirdPassportManager.java new file mode 100644 index 0000000..1bb8cf8 --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/third/ThirdPassportManager.java @@ -0,0 +1,94 @@ +package com.mogo.cloud.passport.third; + +import android.content.Context; +import android.util.Log; + +import com.mogo.cloud.httpdns.MogoHttpDnsConfig; +import com.mogo.cloud.passport.IPassport; +import com.mogo.cloud.passport.MoGoAiCloudClient; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.zhidao.thirdlogin.Environment; +import com.zhidao.thirdlogin.LoginManager; +import com.zhidao.thirdlogin.model.ThirdLoginParam; +import com.zhidao.thirdlogin.model.TokenData; +import com.zhidao.thirdlogin.network.LoginCallback; + +import static com.mogo.cloud.passport.MoGoAiCloudClient.TAG; + +public class ThirdPassportManager { + + private static volatile ThirdPassportManager mInstance; + private IPassport mPassport; + + private ThirdPassportManager() { + + } + + public static ThirdPassportManager getInstance() { + if (mInstance == null) { + synchronized (ThirdPassportManager.class) { + if (mInstance == null) { + mInstance = new ThirdPassportManager(); + } + } + } + return mInstance; + } + + public void refreshToken(Context context, IPassport passport) { + this.mPassport = passport; + MoGoAiCloudClientConfig mAiCloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig(); + if (mAiCloudClientConfig != null) { + ThirdLoginParam thirdLoginParam = ThirdLoginParam.of( + mAiCloudClientConfig.getThirdPartyDeviceId(), + mAiCloudClientConfig.getThirdPartyAppKey() + ); + + LoginCallback loginCallback = new LoginCallback() { + @Override + public void onSuccess(TokenData.TokenResult result) { + if (mPassport != null) { + mPassport.onSuccess(result.token, result.sn); + } + } + + @Override + public void onFailure(int code, String msg) { + if (mPassport != null) { + mPassport.onError(code, msg); + } + } + }; + + if (mAiCloudClientConfig.isShowDebugLog()) { + Log.w(TAG, "loginCallback:" + loginCallback); + } + + Environment environment; + switch (mAiCloudClientConfig.getNetMode()) { + case MogoHttpDnsConfig.HTTP_DNS_ENV_DEV: + environment = Environment.dev; + break; + case MogoHttpDnsConfig.HTTP_DNS_ENV_QA: + case MogoHttpDnsConfig.HTTP_DNS_ENV_DEMO: + environment = Environment.qa; + break; + default: + environment = Environment.release; + break; + } + + LoginManager.getInstance().login( + context, + environment, + thirdLoginParam, + loginCallback); + } else { + Log.e(TAG, "═════════════════════════════════════"); + Log.e(TAG, "║ MoGo 鉴权失败 "); + Log.e(TAG, "║ 请配置 MoGoAiCloudClientConfig 信息"); + Log.e(TAG, "═════════════════════════════════════"); + //todo 未来配置 errorCode设置回调错误码 + } + } +} diff --git a/foudations/mogo-socket/build.gradle b/foudations/mogo-socket/build.gradle index 22d6d63..90116cb 100644 --- a/foudations/mogo-socket/build.gradle +++ b/foudations/mogo-socket/build.gradle @@ -26,12 +26,12 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - // 长链 http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48956182 外部SDK版本 + // socket-for-sdk 长链 http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48956182 外部SDK版本 api 'com.zhidao.socket:built-in-socket:1.0.22' // 上报位置 http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48956200 implementation 'com.zhidao.locupload:loc-upload-sdk:1.1.9' - // 长链 内部SDK版本 + // socket-for-internal 长链 内部SDK版本 implementation 'com.zhidao.socketsdk:socketsdk:2.1.4' implementation 'com.google.protobuf:protobuf-java:3.5.1' diff --git a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/internal/InternalSocketManager.java b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/internal/InternalSocketManager.java index aaaed2e..aad403e 100644 --- a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/internal/InternalSocketManager.java +++ b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/internal/InternalSocketManager.java @@ -43,11 +43,12 @@ public class InternalSocketManager implements OnSocketReceiveCallback, OnSocketA mSocketConnManager = SocketConnManagerImpl.getInstance(context); mSocketConnManager.addSocketMessageCallback(this); mSocketConnManager.addSocketAckCallback(this); - if (TextUtils.isEmpty(cloudClientConfig.getSocketAppId())) { + String appId = cloudClientConfig.getServiceAppId(); + if (TextUtils.isEmpty(appId)) { Logger.e(TAG, "需要初始化 Socket AppId"); return; } - mSocketConnManager.init(cloudClientConfig.getSocketAppId()); + mSocketConnManager.init(appId); } @Override @@ -72,8 +73,10 @@ public class InternalSocketManager implements OnSocketReceiveCallback, OnSocketA } public void release() { - mSocketConnManager.onRelease(); - mSocketConnManager = null; + if (mSocketConnManager != null) { + mSocketConnManager.onRelease(); + mSocketConnManager = null; + } mInstance = null; } } diff --git a/foudations/mogo-utils/src/main/java/com/mogo/cloud/DevicesUtils.java b/foudations/mogo-utils/src/main/java/com/mogo/cloud/DevicesUtils.java index 4502563..88c2172 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/cloud/DevicesUtils.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/cloud/DevicesUtils.java @@ -1,7 +1,36 @@ package com.mogo.cloud; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + /** * 设备信息 */ public class DevicesUtils { + + private static final String PROPERTIES = "android.os.SystemProperties"; + private static final String GSM_SERIAL = "gsm.serial"; + private static final String GET = "get"; + + public static String getSn(){ + return getSystemProperties(GSM_SERIAL); + } + + public static String getSystemProperties(String name ) { + String value = ""; + try { + Class< ? > c = Class.forName( PROPERTIES ); + Method get = c.getMethod( GET, String.class ); + value = (String) get.invoke( c, name ); + } catch ( ClassNotFoundException var3 ) { + var3.printStackTrace(); + } catch ( NoSuchMethodException var4 ) { + var4.printStackTrace(); + } catch ( InvocationTargetException var5 ) { + var5.printStackTrace(); + } catch ( IllegalAccessException var6 ) { + var6.printStackTrace(); + } + return value; + } }