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