bugfixes:优化蓝牙开关,增加u1302平台,准备迁移到高版本AndroidStudio
This commit is contained in:
2025-06-10 16:38:54 +08:00
parent 3056267c4e
commit 60dab59ef8
17 changed files with 402 additions and 84 deletions

View File

@@ -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'

BIN
app/keystore/U1302.jks Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -35,7 +35,7 @@
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.SHUTDOWN" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission
android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"
@@ -81,7 +81,7 @@
<!-- 允许访问振动设备 -->
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 -->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<!-- 允许程序读取或写入系统设置 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- android 9.0上使用前台服务,需要添加权限 -->
@@ -92,17 +92,20 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<!-- 【必须】 移动推送 TPNS SDK 所需权限 -->
<!-- <uses-permission android:name="android.permission.INTERNET" /> -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<!-- 【常用】 移动推送 TPNS SDK所需权限 -->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" /> -->
<!-- <uses-permission android:name="android.permission.VIBRATE" /> -->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
<!-- <uses-permission android:name="android.permission.GET_TASKS" /> -->
<!-- 高德地图 -->
<!-- 用于进行网络定位 -->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> -->
@@ -127,6 +130,35 @@
<!-- 如果您的应用需要后台定位权限且有可能运行在Android Q设备上,并且设置了target>28必须增加这个权限声明 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<!-- 以下是鹰眼SDK基础权限 -->
<!-- 这个权限用于进行网络定位-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- 这个权限用于访问卫星系统接口提供的卫星定位信息-->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!-- 用于访问wifi网络信息wifi信息会用于进行网络定位-->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<!-- 这个权限用于获取wifi的获取权限wifi信息会用来进行网络定位-->
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />-->
<!-- 写入扩展存储向扩展卡写入数据用于写入对象存储BOS数据-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<!-- 访问网络,网络定位需要上网-->
<!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- Android O之后开启前台服务需要申请该权限 -->
<!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />-->
<!-- Android Q之后后台定位需要申请该权限 -->
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />-->
<!-- 以下不是鹰眼SDK需要的基础权限可选 -->
<!-- 用于加快首次卫星定位,可选权限,非必须-->
<!-- <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />-->
<!-- 用于Android M及以上系统申请加入忽略电池优化白名单可选权限非必须-->
<!-- <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />-->
<application
android:name=".base.BaseApplication"
android:allowBackup="true"
@@ -166,11 +198,11 @@
android:label="一键加速"
android:launchMode="singleInstance"
android:theme="@style/activity_styles">
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
</activity>
<activity
@@ -322,7 +354,13 @@
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" />
android:process=":location" />
<!--鹰眼追踪service-->
<service
android:name="com.baidu.trace.LBSTraceService"
android:enabled="true"
android:process=":trace" />
<!-- 应用的其它配置 -->
<uses-library
@@ -363,7 +401,7 @@
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="bQxx6zC6AvZ6O41UUPYq6X1LsQuC36dh" />
android:value="CjFhFE1UP5G14tMBz1kWs7ca92bgHuLr" />
<!-- 请填写你自己的- appKey -->
<meta-data

View File

@@ -197,12 +197,12 @@ public class SplashActivity extends AppCompatActivity {
//静音
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= 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); //音乐音量
}
}

View File

@@ -241,7 +241,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
}
private void setObserve() {
mViewModel.getLockedData().observe(this, new Observer<Boolean>() {
mViewModel.mLockedData.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
Log.e(TAG, "setLockedState: " + aBoolean);
@@ -257,7 +257,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
mViewModel.getEBagCode();
}
});
mViewModel.getStudentsInfoData().observe(this, new Observer<StudentsInfo>() {
mViewModel.mStudentsInfoData.observe(this, new Observer<StudentsInfo>() {
@Override
public void onChanged(StudentsInfo studentsInfo) {
if (studentsInfo == null) {
@@ -309,7 +309,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
SPUtils.put(MainActivity.this, CommonConfig.ADMIN_ID, studentsInfo.getAdmin_id());
}
});
mViewModel.getEBagCodeData().observe(this, new Observer<Boolean>() {
mViewModel.mEBagCodeData.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
@@ -320,14 +320,14 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
}
}
});
mViewModel.getUpdateInfoData().observe(this, new Observer<JsonObject>() {
mViewModel.mUpdateInfoData.observe(this, new Observer<JsonObject>() {
@Override
public void onChanged(JsonObject jsonObject) {
showUpdateDialog(jsonObject);
}
});
mViewModel.getQrCodeData().observe(this, new androidx.lifecycle.Observer<Bitmap>() {
mViewModel.mQrCodeData.observe(this, new androidx.lifecycle.Observer<Bitmap>() {
@Override
public void onChanged(Bitmap bitmap) {
mViewDataBinding.ivQrcode.setImageBitmap(bitmap);
@@ -335,7 +335,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
}
});
mViewModel.getShowPanel().observe(this, new Observer<Boolean>() {
mViewModel.mShowPanel.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
@@ -345,7 +345,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
}
}
});
mViewModel.getAppSettingsData().observe(this, new Observer<AppSettings>() {
mViewModel.mAppSettingsData.observe(this, new Observer<AppSettings>() {
@Override
public void onChanged(AppSettings appSettings) {
mViewDataBinding.setAppSettings(appSettings);

View File

@@ -60,11 +60,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
getDefaultApp();
}
private MutableLiveData<Boolean> mLockedData = new MutableLiveData<>();
public MutableLiveData<Boolean> getLockedData() {
return mLockedData;
}
public MutableLiveData<Boolean> mLockedData = new MutableLiveData<>();
public void getLockedState() {
NetInterfaceManager.getInstance()
@@ -79,11 +75,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
});
}
private MutableLiveData<StudentsInfo> mStudentsInfoData = new MutableLiveData<>();
public MutableLiveData<StudentsInfo> getStudentsInfoData() {
return mStudentsInfoData;
}
public MutableLiveData<StudentsInfo> mStudentsInfoData = new MutableLiveData<>();
/**
* 通过sn获取用户信息
@@ -102,11 +94,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
});
}
private MutableLiveData<Boolean> mEBagCodeData = new MutableLiveData<>();
public MutableLiveData<Boolean> getEBagCodeData() {
return mEBagCodeData;
}
public MutableLiveData<Boolean> mEBagCodeData = new MutableLiveData<>();
public void getEBagCode() {
NetInterfaceManager.getInstance().getEBagCode(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@@ -150,11 +138,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
});
}
private MutableLiveData<JsonObject> mUpdateInfoData = new MutableLiveData<>();
public MutableLiveData<JsonObject> getUpdateInfoData() {
return mUpdateInfoData;
}
public MutableLiveData<JsonObject> mUpdateInfoData = new MutableLiveData<>();
public void checkUpdateInfo() {
NetInterfaceManager.getInstance()
@@ -259,11 +243,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
}
private MutableLiveData<Bitmap> mQrCodeData = new MutableLiveData<>();
public MutableLiveData<Bitmap> getQrCodeData() {
return mQrCodeData;
}
public MutableLiveData<Bitmap> 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<ActivityMainBinding, ActivityEv
});
}
private MutableLiveData<Boolean> mShowPanel = new MutableLiveData<>();
public MutableLiveData<Boolean> getShowPanel() {
return mShowPanel;
}
public MutableLiveData<Boolean> mShowPanel = new MutableLiveData<>();
public void setBindInfoPanel() {
NetInterfaceManager.getInstance().getSystemSettingObservable()
@@ -338,11 +314,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
});
}
private MutableLiveData<AppSettings> mAppSettingsData = new MutableLiveData<>();
public MutableLiveData<AppSettings> getAppSettingsData() {
return mAppSettingsData;
}
public MutableLiveData<AppSettings> mAppSettingsData = new MutableLiveData<>();
public void getAppSettings() {
NetInterfaceManager.getInstance().getAppSettingObservable()

View File

@@ -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<String>() {
@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

View File

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

View File

@@ -592,6 +592,13 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<ForceDownloadData>>> getGroupForceDownloadObservable() {
return mRetrofit.create(ForceDownloadApi.class)
.getGroupForceDownloadApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial(mContext))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<ForceDownloadData>>> 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);
}
});

View File

@@ -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";

View File

@@ -18,4 +18,12 @@ public interface ForceDownloadApi {
@Field("key") String key,
@Field("sn") String sn
);
@FormUrlEncoded
@POST(UrlAddress.GROUP_APP_INSTALL_LIST)
Observable<BaseResponse<List<ForceDownloadData>>> getGroupForceDownloadApi(
@Field("key") String key,
@Field("sn") String sn
);
}

View File

@@ -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:
}
}

View File

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

View File

@@ -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);

View File

@@ -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 {