add new module of location and update version

This commit is contained in:
zhongchao
2021-07-09 09:34:23 +08:00
parent 7389428f57
commit 7a8437ad20
16 changed files with 244 additions and 12 deletions

View File

@@ -0,0 +1,20 @@
package com.mogo.cloud.location;
import android.content.Context;
/**
* 位置服务:上报位置信息和车机状态
*/
public interface IMogoLocationInfoService {
/**
* 初始化
*
* @param context 上下文
*/
void init(Context context);
void start();
void stop();
}

View File

@@ -0,0 +1,56 @@
package com.mogo.cloud.location;
import android.content.Context;
import com.mogo.cloud.location.internal.InternalLocationManager;
import com.mogo.cloud.location.third.ThirdLocationManager;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
public class LocationManager implements IMogoLocationInfoService {
private static volatile LocationManager mInstance;
private MoGoAiCloudClientConfig cloudClientConfig;
private LocationManager() {
cloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig();
}
public static LocationManager getInstance() {
if (mInstance == null) {
synchronized (LocationManager.class) {
if (mInstance == null) {
mInstance = new LocationManager();
}
}
}
return mInstance;
}
@Override
public void init(Context context) {
if (cloudClientConfig.isThirdLogin()) {
ThirdLocationManager.getInstance().init(context);
} else {
InternalLocationManager.getInstance().init(context);
}
}
@Override
public void start() {
if (cloudClientConfig.isThirdLogin()) {
ThirdLocationManager.getInstance().start();
} else {
InternalLocationManager.getInstance().start();
}
}
@Override
public void stop() {
if (cloudClientConfig.isThirdLogin()) {
ThirdLocationManager.getInstance().stop();
} else {
InternalLocationManager.getInstance().stop();
}
}
}

View File

@@ -0,0 +1,31 @@
package com.mogo.cloud.location.internal;
import android.content.Context;
public class InternalLocationManager {
private static volatile InternalLocationManager mInstance;
public static InternalLocationManager getInstance() {
if (mInstance == null) {
synchronized (InternalLocationManager.class) {
if (mInstance == null) {
mInstance = new InternalLocationManager();
}
}
}
return mInstance;
}
public void init(Context context) {
}
public void start() {
}
public void stop() {
}
}

View File

@@ -0,0 +1,50 @@
package com.mogo.cloud.location.third;
import android.content.Context;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.cloud.utils.logger.Logger;
import com.zhidao.locupload.LocUploadConfig;
import com.zhidao.locupload.LocUploadManager;
public class ThirdLocationManager {
private static final String TAG = "ThirdLocationManager";
private static volatile ThirdLocationManager mInstance;
private MoGoAiCloudClientConfig cloudClientConfig;
private ThirdLocationManager() {
cloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig();
}
public static ThirdLocationManager getInstance() {
if (mInstance == null) {
synchronized (ThirdLocationManager.class) {
if (mInstance == null) {
mInstance = new ThirdLocationManager();
}
}
}
return mInstance;
}
public void init(Context context) {
LocUploadConfig.instance().
setAppId(cloudClientConfig.getServiceAppId()).
setContext(context.getApplicationContext()).
setLoggable(cloudClientConfig.isShowDebugLog()).
setLocInterval(2000L);
Logger.d(TAG, "location sdk - init");
}
public void start() {
LocUploadManager.getInstance().startUpload();
Logger.d( TAG, "sdk - start" );
}
public void stop() {
LocUploadManager.getInstance().stopUpload();
Logger.d( TAG, "sdk - stop" );
}
}