diff --git a/app/build.gradle b/app/build.gradle
index 091a4ca..0a5a093 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,8 +29,8 @@ android {
defaultConfig {
applicationId "com.aoleyun.sn"
- versionCode 178
- versionName "1.5.0513"
+ versionCode 179
+ versionName "1.5.0610"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24
@@ -40,8 +40,8 @@ android {
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
- abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
- // 还可以添加 'armeabi' , 'x86', 'x86_64', 'mips', 'mips64'
+ abiFilters 'arm64-v8a'
+ // 还可以添加 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
}
buildConfigField "String", "ROOT_URL", '"https://led.aoleyun.cn/api/"'
@@ -71,6 +71,10 @@ android {
//测试版的图标
// beta.res.srcDirs = ['src/beta/res']
// newly.res.srcDirs = ['src/beta/res']
+
+ main {
+ jniLibs.srcDir 'src/main/jniLibs'
+ }
}
// Disable release builds for now
@@ -242,9 +246,32 @@ android {
v1SigningEnabled true
v2SigningEnabled true
}
+
+ U1302 {
+ storeFile file("keystore/U1302.jks")
+ storePassword "123456"
+ keyAlias "u1302"
+ keyPassword "123456"
+ v1SigningEnabled true
+ v2SigningEnabled true
+ }
}
buildTypes {
+ QZ15Debug.initWith(debug)
+ QZ15Debug {
+ buildConfigField "String", "platform", '"QZA15"'
+ versionNameSuffix "-debug"
+ debuggable true
+ signingConfig signingConfigs.U1302
+ }
+
+ QZ15Release.initWith(release)
+ QZ15Release {
+ buildConfigField "String", "platform", '"QZA15"'
+ signingConfig signingConfigs.U1302
+ }
+
iPlay50miniProDebug.initWith(debug)
iPlay50miniProDebug {
buildConfigField "String", "platform", '"miniG99"'
@@ -259,16 +286,16 @@ android {
signingConfig signingConfigs.iPlay50miniPro
}
- seewoDebug.initWith(debug)
- seewoDebug {
+ seewoDebug.initWith(debug)
+ seewoDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.seewo
buildConfigField "String", "platform", '"seewo"'
}
- seewoRelease.initWith(release)
- seewoRelease {
+ seewoRelease.initWith(release)
+ seewoRelease {
signingConfig signingConfigs.seewo
buildConfigField "String", "platform", '"seewo"'
}
@@ -613,6 +640,8 @@ dependencies {
implementation files('libs/ebf_tools_v1.0.jar')
implementation files('libs/vendor.mediatek.hardware.nvram-V1.0-java.jar')
+ implementation files('libs/BaiduTraceSDK_v3_1_10.jar')
+
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.multidex:multidex:2.0.1'
diff --git a/app/keystore/U1302.jks b/app/keystore/U1302.jks
new file mode 100644
index 0000000..fd51420
Binary files /dev/null and b/app/keystore/U1302.jks differ
diff --git a/app/libs/BaiduTraceSDK_v3_1_10.jar b/app/libs/BaiduTraceSDK_v3_1_10.jar
new file mode 100644
index 0000000..fff5f12
Binary files /dev/null and b/app/libs/BaiduTraceSDK_v3_1_10.jar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6fe3ad2..cc96fe4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,7 +35,7 @@
-
+
-
+
@@ -92,17 +92,20 @@
+
+
+
@@ -127,6 +130,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+ android:process=":location" />
+
+
+
+ android:value="CjFhFE1UP5G14tMBz1kWs7ca92bgHuLr" />
= android.os.Build.VERSION_CODES.P) {
- int ringMax = audioManager.getStreamMinVolume(AudioManager.STREAM_RING);
- int musicMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_MUSIC);
- int voiceMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_VOICE_CALL);
- audioManager.setStreamVolume(AudioManager.STREAM_RING, ringMax, 0);
- audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0);
- audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量
+// int ringMax = audioManager.getStreamMinVolume(AudioManager.STREAM_RING);
+// int musicMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_MUSIC);
+// int voiceMax = audioManager.getStreamMinVolumeInt(AudioManager.STREAM_VOICE_CALL);
+// audioManager.setStreamVolume(AudioManager.STREAM_RING, ringMax, 0);
+// audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0);
+// audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量
}
}
diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
index d32fc2d..ff7ac28 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
@@ -241,7 +241,7 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mLockedData.observe(this, new Observer() {
@Override
public void onChanged(Boolean aBoolean) {
Log.e(TAG, "setLockedState: " + aBoolean);
@@ -257,7 +257,7 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mStudentsInfoData.observe(this, new Observer() {
@Override
public void onChanged(StudentsInfo studentsInfo) {
if (studentsInfo == null) {
@@ -309,7 +309,7 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mEBagCodeData.observe(this, new Observer() {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
@@ -320,14 +320,14 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mUpdateInfoData.observe(this, new Observer() {
@Override
public void onChanged(JsonObject jsonObject) {
showUpdateDialog(jsonObject);
}
});
- mViewModel.getQrCodeData().observe(this, new androidx.lifecycle.Observer() {
+ mViewModel.mQrCodeData.observe(this, new androidx.lifecycle.Observer() {
@Override
public void onChanged(Bitmap bitmap) {
mViewDataBinding.ivQrcode.setImageBitmap(bitmap);
@@ -335,7 +335,7 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mShowPanel.observe(this, new Observer() {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
@@ -345,7 +345,7 @@ public class MainActivity extends BaseMvvmActivity() {
+ mViewModel.mAppSettingsData.observe(this, new Observer() {
@Override
public void onChanged(AppSettings appSettings) {
mViewDataBinding.setAppSettings(appSettings);
diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java
index 1f8775c..e31616a 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java
@@ -60,11 +60,7 @@ public class MainViewModel extends BaseViewModel mLockedData = new MutableLiveData<>();
-
- public MutableLiveData getLockedData() {
- return mLockedData;
- }
+ public MutableLiveData mLockedData = new MutableLiveData<>();
public void getLockedState() {
NetInterfaceManager.getInstance()
@@ -79,11 +75,7 @@ public class MainViewModel extends BaseViewModel mStudentsInfoData = new MutableLiveData<>();
-
- public MutableLiveData getStudentsInfoData() {
- return mStudentsInfoData;
- }
+ public MutableLiveData mStudentsInfoData = new MutableLiveData<>();
/**
* 通过sn获取用户信息
@@ -102,11 +94,7 @@ public class MainViewModel extends BaseViewModel mEBagCodeData = new MutableLiveData<>();
-
- public MutableLiveData getEBagCodeData() {
- return mEBagCodeData;
- }
+ public MutableLiveData mEBagCodeData = new MutableLiveData<>();
public void getEBagCode() {
NetInterfaceManager.getInstance().getEBagCode(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@@ -150,11 +138,7 @@ public class MainViewModel extends BaseViewModel mUpdateInfoData = new MutableLiveData<>();
-
- public MutableLiveData getUpdateInfoData() {
- return mUpdateInfoData;
- }
+ public MutableLiveData mUpdateInfoData = new MutableLiveData<>();
public void checkUpdateInfo() {
NetInterfaceManager.getInstance()
@@ -259,11 +243,7 @@ public class MainViewModel extends BaseViewModel mQrCodeData = new MutableLiveData<>();
-
- public MutableLiveData getQrCodeData() {
- return mQrCodeData;
- }
+ public MutableLiveData mQrCodeData = new MutableLiveData<>();
public void getQrCode() {
String encryptString = CXAESUtil.encrypt(CommonConfig.AES_KEY, Utils.getSerial(getCtx()));
@@ -281,11 +261,7 @@ public class MainViewModel extends BaseViewModel mShowPanel = new MutableLiveData<>();
-
- public MutableLiveData getShowPanel() {
- return mShowPanel;
- }
+ public MutableLiveData mShowPanel = new MutableLiveData<>();
public void setBindInfoPanel() {
NetInterfaceManager.getInstance().getSystemSettingObservable()
@@ -338,11 +314,7 @@ public class MainViewModel extends BaseViewModel mAppSettingsData = new MutableLiveData<>();
-
- public MutableLiveData getAppSettingsData() {
- return mAppSettingsData;
- }
+ public MutableLiveData mAppSettingsData = new MutableLiveData<>();
public void getAppSettings() {
NetInterfaceManager.getInstance().getAppSettingObservable()
diff --git a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
index fe55db4..4ed1186 100644
--- a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
+++ b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
@@ -2,6 +2,7 @@ package com.aoleyun.sn.base;
import android.os.Handler;
import android.os.Looper;
+import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
@@ -19,6 +20,7 @@ import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.push.PushManager;
import com.aoleyun.sn.rlog.LogDBManager;
import com.aoleyun.sn.utils.JgyUtils;
+import com.aoleyun.sn.utils.SystemUtils;
import com.aoleyun.sn.utils.Utils;
import com.aoleyun.sn.utils.WiFiUtils;
import com.aoleyun.sn.utils.XAPKUtils;
@@ -41,10 +43,12 @@ public class BaseApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
- //非主进程不初始化
-// if (SystemUtils.isMainProcessName(this, Process.myPid())) {
init();
-// }
+ //非主进程不初始化
+ if (SystemUtils.isMainProcessName(this, Process.myPid())) {
+ MapManager.init(this);
+ MapManager.getInstance().initMap();
+ }
}
private void init() {
@@ -73,8 +77,7 @@ public class BaseApplication extends MultiDexApplication {
LogDBManager.init(this);
FileManager.init(this);
ConnectManager.init(this);
- MapManager.init(this);
- MapManager.getInstance().initMap();
+
JgyUtils.getInstance().hookWebView();
Aria.init(this);
Aria.get(this).getDownloadConfig().setMaxTaskNum(1);
@@ -281,7 +284,7 @@ public class BaseApplication extends MultiDexApplication {
void onResult(String code);
}
- private static void initTagObservable() {
+ private void initTagObservable() {
Log.e(TAG, "initTagObservable: ");
Observable.create(new ObservableOnSubscribe() {
@Override
@@ -304,7 +307,13 @@ public class BaseApplication extends MultiDexApplication {
@Override
public void onNext(String code) {
Log.e("initTagObservable", "onNext: " + code);
- NetInterfaceManager.getInstance().setPushTags();
+ switch (code) {
+ case "PUSH_20101":
+ aliyunPushInit();
+ break;
+ default:
+ NetInterfaceManager.getInstance().setPushTags();
+ }
}
@Override
diff --git a/app/src/main/java/com/aoleyun/sn/manager/MapManager.java b/app/src/main/java/com/aoleyun/sn/manager/MapManager.java
index baabc3c..f4f6b00 100644
--- a/app/src/main/java/com/aoleyun/sn/manager/MapManager.java
+++ b/app/src/main/java/com/aoleyun/sn/manager/MapManager.java
@@ -10,6 +10,24 @@ import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
+import com.baidu.trace.LBSTraceClient;
+import com.baidu.trace.Trace;
+import com.baidu.trace.api.fence.AddMonitoredPersonResponse;
+import com.baidu.trace.api.fence.CreateFenceRequest;
+import com.baidu.trace.api.fence.CreateFenceResponse;
+import com.baidu.trace.api.fence.DeleteFenceResponse;
+import com.baidu.trace.api.fence.DeleteMonitoredPersonResponse;
+import com.baidu.trace.api.fence.FenceListResponse;
+import com.baidu.trace.api.fence.HistoryAlarmResponse;
+import com.baidu.trace.api.fence.ListMonitoredPersonResponse;
+import com.baidu.trace.api.fence.MonitoredStatusByLocationResponse;
+import com.baidu.trace.api.fence.MonitoredStatusResponse;
+import com.baidu.trace.api.fence.OnFenceListener;
+import com.baidu.trace.api.fence.UpdateFenceResponse;
+import com.baidu.trace.model.CoordType;
+import com.baidu.trace.model.LatLng;
+import com.baidu.trace.model.OnTraceListener;
+import com.baidu.trace.model.PushMessage;
public class MapManager {
private String TAG = "MapManager";
@@ -19,9 +37,13 @@ public class MapManager {
private Context mContext;
private LocationClient mLocationClient = null;
private LocationClientOption mOption;
+ private LBSTraceClient mLBSTraceClient;
private MapManager(Context context) {
this.mContext = context;
+ //3.1.10以上
+// LBSTraceClient.setAgreePrivacy(mContext, true);
+// createClientFence();
}
public static void init(Context context) {
@@ -196,4 +218,211 @@ public class MapManager {
// logMsg(sb.toString(), tag);
}
};
+
+ // 初始化围栏监听器
+ OnFenceListener mFenceListener = new OnFenceListener() {
+ // 创建围栏回调
+ @Override
+ public void onCreateFenceCallback(CreateFenceResponse response) {
+ Log.e(TAG, "onCreateFenceCallback: " + response);
+ }
+
+ // 更新围栏回调
+ @Override
+ public void onUpdateFenceCallback(UpdateFenceResponse response) {
+ Log.e(TAG, "onUpdateFenceCallback: " + response);
+ }
+
+ // 删除围栏回调
+ @Override
+ public void onDeleteFenceCallback(DeleteFenceResponse response) {
+ Log.e(TAG, "onDeleteFenceCallback: " + response);
+ }
+
+ // 围栏列表回调
+ @Override
+ public void onFenceListCallback(FenceListResponse response) {
+ Log.e(TAG, "onFenceListCallback: " + response);
+ }
+
+ // 监控状态回调
+ @Override
+ public void onMonitoredStatusCallback(MonitoredStatusResponse response) {
+ Log.e(TAG, "onMonitoredStatusCallback: " + response);
+ }
+
+ // 指定位置监控状态回调
+ @Override
+ public void onMonitoredStatusByLocationCallback(MonitoredStatusByLocationResponse response) {
+ Log.e(TAG, "onMonitoredStatusByLocationCallback: " + response);
+ }
+
+ // 历史报警回调
+ @Override
+ public void onHistoryAlarmCallback(HistoryAlarmResponse response) {
+ Log.e(TAG, "onHistoryAlarmCallback: " + response);
+ }
+
+ @Override
+ public void onAddMonitoredPersonCallback(AddMonitoredPersonResponse addMonitoredPersonResponse) {
+ Log.e(TAG, "onAddMonitoredPersonCallback: " + addMonitoredPersonResponse);
+ }
+
+ @Override
+ public void onDeleteMonitoredPersonCallback(DeleteMonitoredPersonResponse deleteMonitoredPersonResponse) {
+ Log.e(TAG, "onDeleteMonitoredPersonCallback: " + deleteMonitoredPersonResponse);
+ }
+
+ @Override
+ public void onListMonitoredPersonCallback(ListMonitoredPersonResponse listMonitoredPersonResponse) {
+ Log.e(TAG, "onListMonitoredPersonCallback: " + listMonitoredPersonResponse);
+ }
+ };
+
+ // 初始化轨迹服务监听器
+ private OnTraceListener mTraceListener = new OnTraceListener() {
+ // 开启服务回调
+ @Override
+ public void onStartTraceCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onStartTraceCallback: status = " + status + " message = " + message);
+ //因为startTrace与startGather是异步执行,且startGather依赖startTrace执行开启服务成功,
+ // 所以建议startGather在public void onStartTraceCallback(int errorNo, String message)回调返回错误码为0后,
+ // 再进行调用执行,否则会出现服务开启失败12002的错误。
+ switch (status){
+ case 10001:
+ case 10002:
+ case 12002:
+ break;
+ case 0:
+ // 开启采集
+ mLBSTraceClient.startGather(mGatherTraceListener);
+ default:
+ }
+ }
+
+ // 停止服务回调
+ @Override
+ public void onStopTraceCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onStopTraceCallback: status = " + status + " message = " + message);
+ }
+
+ // 开启采集回调
+ @Override
+ public void onStartGatherCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onStartGatherCallback: status = " + status + " message = " + message);
+ }
+
+ // 停止采集回调
+ @Override
+ public void onStopGatherCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onStopGatherCallback: status = " + status + " message = " + message);
+ }
+
+ // 推送回调
+ @Override
+ public void onPushCallback(byte messageNo, PushMessage message) {
+ Log.e(TAG, "mTraceListener onPushCallback: messageNo = " + messageNo + " PushMessage = " + message);
+ }
+
+ @Override
+ public void onBindServiceCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onBindServiceCallback: status = " + status + " message = " + message);
+ }
+
+ @Override
+ public void onInitBOSCallback(int status, String message) {
+ Log.e(TAG, "mTraceListener onInitBOSCallback: status = " + status + " message = " + message);
+ }
+ };
+
+ private OnTraceListener mGatherTraceListener = new OnTraceListener() {
+ // 开启服务回调
+ @Override
+ public void onStartTraceCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onStartTraceCallback: status = " + status + " message = " + message);
+ }
+
+ // 停止服务回调
+ @Override
+ public void onStopTraceCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onStopTraceCallback: status = " + status + " message = " + message);
+ }
+
+ // 开启采集回调
+ @Override
+ public void onStartGatherCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onStartGatherCallback: status = " + status + " message = " + message);
+ }
+
+ // 停止采集回调
+ @Override
+ public void onStopGatherCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onStopGatherCallback: status = " + status + " message = " + message);
+ }
+
+ // 推送回调
+ @Override
+ public void onPushCallback(byte messageNo, PushMessage message) {
+ Log.e(TAG, "mGatherTraceListener onPushCallback: messageNo = " + messageNo + " PushMessage = " + message);
+ }
+
+ @Override
+ public void onBindServiceCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onBindServiceCallback: status = " + status + " message = " + message);
+ }
+
+ @Override
+ public void onInitBOSCallback(int status, String message) {
+ Log.e(TAG, "mGatherTraceListener onInitBOSCallback: status = " + status + " message = " + message);
+ }
+ };
+
+ public void createClientFence() {
+ // 轨迹服务ID
+ long serviceId = 241868;
+ // 设备标识
+ String entityName = "myTrace";
+ // 是否需要对象存储服务,默认为:false,关闭对象存储服务。注:鹰眼 Android SDK v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。
+ boolean isNeedObjectStorage = false;
+ // 初始化轨迹服务
+ Trace mTrace = new Trace(serviceId, entityName, isNeedObjectStorage);
+ // 初始化轨迹服务客户端
+ try {
+ mLBSTraceClient = new LBSTraceClient(mContext);
+ } catch (Exception e) {
+ e.printStackTrace();
+ Log.e(TAG, "createClientFence: " + e.getMessage());
+ }
+
+ // 请求标识
+ int tag = 3;
+ // 围栏名称
+ String fenceName = "local_circle";
+ // 监控对象
+ String monitoredPerson = "myTrace";
+ // 围栏圆心
+ LatLng center = new LatLng(39.9151190000, 116.4039630000);
+ // 围栏半径(单位 : 米)
+ double radius = 2000;
+ // 去噪精度
+ int denoise = 200;
+ // 坐标类型
+ CoordType coordType = CoordType.bd09ll;
+ // 创建本地圆形围栏请求实例
+ CreateFenceRequest localCircleFenceRequest = CreateFenceRequest.buildLocalCircleRequest(tag, serviceId, fenceName, monitoredPerson, center, radius, denoise, coordType);
+
+ if (mLBSTraceClient != null) {
+ // 创建本地圆形围栏
+ mLBSTraceClient.createFence(localCircleFenceRequest, mFenceListener);
+
+ // 定位周期(单位:秒)
+ int gatherInterval = 30;
+ // 打包回传周期(单位:秒)
+ int packInterval = 10;
+ // 设置定位和打包周期
+ mLBSTraceClient.setInterval(gatherInterval, packInterval);
+ // 开启服务
+ mLBSTraceClient.startTrace(mTrace, mTraceListener);
+ }
+ }
}
diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java
index ed02fc6..494bf2a 100644
--- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java
+++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java
@@ -592,6 +592,13 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
+ public Observable>> getGroupForceDownloadObservable() {
+ return mRetrofit.create(ForceDownloadApi.class)
+ .getGroupForceDownloadApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial(mContext))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
+ }
+
public Observable>> getTestUpdateObservable() {
return mRetrofit.create(CheckTestUpdateApi.class)
.getTestUpdate(Utils.getSerial(mContext))
@@ -2611,6 +2618,8 @@ public class NetInterfaceManager {
tagSets.add(JgyUtils.P50Tag);
} else if (platform == JgyUtils.seewoPlatform) {
tagSets.add(JgyUtils.seewoTag);
+ } else if (platform == JgyUtils.U1302Platform) {
+ tagSets.add(JgyUtils.allwinner_U1302);
}
});
diff --git a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java
index c500b54..1347f07 100644
--- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java
+++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java
@@ -38,7 +38,8 @@ public class UrlAddress {
public static final String GET_ALL_APP = "recommend/index";
/*强制安装应用*/
public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index";
- /**/
+ /*分组应用强制安装*/
+ public static final String GROUP_APP_INSTALL_LIST = "forceinstall/group-app";
/*通过固件名获取内置应用*/
public static final String GET_ROM_APP = "And/getFirmwareApp";
diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java
index c1f8b6f..b09c2f9 100644
--- a/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java
+++ b/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java
@@ -18,4 +18,12 @@ public interface ForceDownloadApi {
@Field("key") String key,
@Field("sn") String sn
);
+
+ @FormUrlEncoded
+ @POST(UrlAddress.GROUP_APP_INSTALL_LIST)
+ Observable>> getGroupForceDownloadApi(
+ @Field("key") String key,
+ @Field("sn") String sn
+ );
+
}
diff --git a/app/src/main/java/com/aoleyun/sn/push/PushManager.java b/app/src/main/java/com/aoleyun/sn/push/PushManager.java
index 03d5e89..00672d3 100644
--- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java
+++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java
@@ -259,7 +259,13 @@ public class PushManager {
/*应用市场应用安装*/
private static final String APPSTORE_INSTALL = "76";
/*设置壁纸*/
- private static final String wallpaper = "78";
+ private static final String SET_WALLPAPER = "78";
+ /*更换小组标签*/
+ private static final String UPDATE_CHILD_BATCH = "79";
+ /*分组应用分发*/
+ private static final String GROUP_APP_INSTALL = "80";
+ /*分组应用卸载*/
+ private static final String GROUP_APP_UNINSTALL = "81";
public void setPushContent(String title, String extras) {
switch (title) {
@@ -672,9 +678,15 @@ public class PushManager {
case APPSTORE_INSTALL:
break;
- case wallpaper:
+ case SET_WALLPAPER:
setWallpaper(extras);
break;
+ case UPDATE_CHILD_BATCH:
+ break;
+ case GROUP_APP_INSTALL:
+ break;
+ case GROUP_APP_UNINSTALL:
+ break;
default:
}
}
diff --git a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java
index e594a07..3cf19dc 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java
@@ -156,6 +156,7 @@ public class JgyUtils {
public static final int G11JPlatform = 21;
public static final int P50Platform = 23;
public static final int seewoPlatform = 25;
+ public static final int U1302Platform = 26;
public static final String Other = "其他";
@@ -178,6 +179,7 @@ public class JgyUtils {
public static final String G11JTag = "aud8786";
public static final String P50Tag = "P50TD";
public static final String seewoTag = "seewo";
+ public static final String allwinner_U1302 = "QZA15";
private CacheHelper cacheHelper;
@@ -320,6 +322,9 @@ public class JgyUtils {
} else if (seewoTag.equalsIgnoreCase(platform)) {
Log.i(TAG, "checkAppPlatform: " + "seewo");
return seewoPlatform;
+ } else if (allwinner_U1302.equalsIgnoreCase(platform)) {
+ Log.i(TAG, "checkAppPlatform: " + "U1302");
+ return U1302Platform;
} else {
Log.i(TAG, "checkAppPlatform: " + "没有数据");
return UnknowPlatform;
@@ -380,6 +385,8 @@ public class JgyUtils {
getAppPlatformCallback.AppPlatform(P50Platform);
} else if (seewoTag.equalsIgnoreCase(platform)) {
getAppPlatformCallback.AppPlatform(seewoPlatform);
+ } else if (allwinner_U1302.equalsIgnoreCase(platform)) {
+ getAppPlatformCallback.AppPlatform(U1302Platform);
} else {
getAppPlatformCallback.AppPlatform(UnknowPlatform);
}
@@ -2042,21 +2049,24 @@ public class JgyUtils {
* @param state 1打开 0关闭
*/
public void setDeveloperOptions(int state) {
+ Log.e(TAG, "getDeveloper: state = " + state);
+
int oldStatu = Settings.System.getInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, 0);
if (oldStatu == state) {
Log.e(TAG, "setDeveloperOptions: oldStatu = " + oldStatu + " no changed");
}
- Log.e(TAG, "getDeveloper: state = " + state);
//这个需要反着来
Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state);
+
Log.e(TAG, "setDeveloperOptions: DEVELOPMENT_SETTINGS_ENABLED = " + Settings.Global.getInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0));
Log.e(TAG, "setDeveloperOptions: ADB_ENABLED = " + Settings.Global.getInt(crv, Settings.Global.ADB_ENABLED, 0));
-
- if (Settings.Global.getInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != state) {
- Settings.Global.putInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state);
- }
- if (Settings.Global.getInt(crv, Settings.Global.ADB_ENABLED, 0) != state) {
- Settings.Global.putInt(crv, Settings.Global.ADB_ENABLED, state);
+ if (!BuildConfig.DEBUG) {
+ if (Settings.Global.getInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != state) {
+ Settings.Global.putInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state);
+ }
+ if (Settings.Global.getInt(crv, Settings.Global.ADB_ENABLED, 0) != state) {
+ Settings.Global.putInt(crv, Settings.Global.ADB_ENABLED, state);
+ }
}
}
diff --git a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java
index 5f678ee..e8e81e2 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java
@@ -392,11 +392,11 @@ public class SysSettingUtils {
}
- int old_setting_bht = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, 0);
+ int old_setting_bht = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, 1);
Log.e(TAG, "setBluetooth: old_setting_bht = " + old_setting_bht);
- int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 0);
+ int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 1);
Log.e(TAG, "setBluetooth: old_setting_bluetooth = " + old_setting_bluetooth);
- int old_setting_bhtvideo = mmkv.decodeInt(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, 0);
+ int old_setting_bhtvideo = mmkv.decodeInt(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, 1);
Log.e(TAG, "setBluetooth: old_setting_bhtvideo = " + old_setting_bhtvideo);
diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java
index d5d4dcf..60081b0 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java
@@ -1819,6 +1819,7 @@ public class Utils {
|| JgyUtils.getInstance().checkAppPlatform() == JgyUtils.G11JPlatform
|| JgyUtils.getInstance().checkAppPlatform() == JgyUtils.P50Platform
|| JgyUtils.getInstance().checkAppPlatform() == JgyUtils.seewoPlatform
+ || JgyUtils.getInstance().checkAppPlatform() == JgyUtils.U1302Platform
) {
return Utils.getProperty("ro.build.display.id", "获取失败");
} else {
diff --git a/app/src/main/jniLibs/arm64-v8a/libBaiduTraceSDK_v3_1_10.so b/app/src/main/jniLibs/arm64-v8a/libBaiduTraceSDK_v3_1_10.so
new file mode 100644
index 0000000..121acf2
Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/libBaiduTraceSDK_v3_1_10.so differ