version:1.5.1018

bugfixes:
add:替换图标,优化网络连接
This commit is contained in:
2025-11-03 09:49:59 +08:00
parent 06513441bd
commit eea2af875b
33 changed files with 973 additions and 62 deletions

View File

@@ -0,0 +1,160 @@
package com.aoleyun.sn.activity;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.PowerManager;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import androidx.databinding.DataBindingUtil;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseDataBindingActivity;
import com.aoleyun.sn.databinding.ActivityAudioBinding;
import com.aoleyun.sn.utils.WakeUpUtils;
public class AudioActivity extends BaseDataBindingActivity {
private static final String TAG = "AudioActivity";
private ActivityAudioBinding mBinding;
private PowerManager pm;
private PowerManager.WakeLock wakeLock;
private AudioManager audioManager;
private Vibrator vibrator;
@Override
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_audio);
}
@Override
public void initView() {
mBinding.tvStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
releasePlayer();
finish();
}
});
}
@Override
public void initData() {
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "WakeAndLock");
wakeLock.acquire(60 * 1000L);
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if (vibrator.hasVibrator()) {
long[] pattern = {1000, 5000, 1000, 5000};
vibrator.vibrate(pattern, 0);
} else {
Log.e(TAG, "initView: no vibrator");
}
WakeUpUtils.wakeUpAndUnlockScreen(this);
setMaxVolume();
defaultCallMediaPlayer();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.e(TAG, "onNewIntent: " + intent.getAction());
}
@Override
protected void onDestroy() {
vibrator.cancel();
releasePlayer();
mediaPlayer = null;
super.onDestroy();
}
private void releasePlayer() {
try {
if (mediaPlayer != null) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
}
} catch (Exception e) {
Log.e(TAG, "releasePlayer: " + e.getMessage());
}
}
/**
* 播放系统默认来电铃声
*
* @return MediaPlayer对象
* @throws Exception
*/
MediaPlayer mediaPlayer;
public void defaultCallMediaPlayer() {
if (mediaPlayer != null) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
}
mediaPlayer = MediaPlayer.create(this, R.raw.test);
try {
// mediaPlayer.prepare();
mediaPlayer.setLooping(false);
int duration = mediaPlayer.getDuration() / 1000;
Log.e(TAG, "defaultCallMediaPlayer: " + "duration: " + duration);
int loop = 0;
if (duration <= 1) {
loop = 30;
} else {
loop = (30 / duration);
}
final int[] soundCount = {0};
int finalLoop = loop;
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
if (soundCount[0] <= finalLoop) {
setMaxVolume();
mediaPlayer.start();
soundCount[0] += 1;
Log.e(TAG, "onCompletion: " + "loop: " + finalLoop);
Log.e(TAG, "onCompletion: " + "soundCount: " + soundCount[0]);
} else {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
Log.e(TAG, "onCompletion: " + "loop: " + finalLoop);
Log.e(TAG, "onCompletion: " + "soundCount: " + soundCount[0]);
}
}
});
mediaPlayer.setLooping(false);
mediaPlayer.start();
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "defaultCallMediaPlayer: " + e.getMessage());
}
}
private void setMaxVolume() {
if (BuildConfig.DEBUG) {
return;
}
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int ringMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
int musicMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int voiceMax = audioManager.getStreamMaxVolume(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); //音乐音量
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);
}
}

View File

@@ -217,7 +217,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
} else {
int aihuaUnlock = Settings.System.getInt(getCtx().getContentResolver(), CommonConfig.AIHUA_UNLOCK, 0);
if (JgyUtils.getInstance().isAihuaFramwwork() && aihuaUnlock == 1) {
if (JgyUtils.getInstance().isAihuaFramework() && aihuaUnlock == 1) {
Log.e(TAG, "getDefaultDesktop: " + "Device aihua");
} else {

View File

@@ -0,0 +1,115 @@
package com.aoleyun.sn.activity.update;
import android.content.Intent;
import android.view.View;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.mvvm.BaseMvvmActivity;
import com.aoleyun.sn.bean.AppUpdateInfo;
import com.aoleyun.sn.databinding.ActivityAppUpdateBinding;
import com.aoleyun.sn.gson.GsonUtils;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.Utils;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.download.DownloadEntity;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hjq.toast.Toaster;
import static com.arialyy.aria.core.inf.IEntity.STATE_RUNNING;
public class AppUpdateActivity extends BaseMvvmActivity<AppUpdateViewModel, ActivityAppUpdateBinding> {
private AppUpdateInfo mAppInfoData;
@Override
protected int getLayoutId() {
return R.layout.activity_app_update;
}
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
mViewDataBinding.setClick(new BtnClick());
}
@Override
protected void initView() {
}
@Override
protected void initData() {
Intent intent = getIntent();
mAppInfoData = (AppUpdateInfo) intent.getSerializableExtra("appUpdateInfo");
if (mAppInfoData != null) {
mViewDataBinding.setAppInfo(mAppInfoData);
mViewDataBinding.setMsg("检测到新版本,是否更新");
String pkg = mAppInfoData.getPackages();
switch (pkg) {
case "com.aoleyun.os":
mViewDataBinding.ivAppIcon.setImageDrawable(getDrawable(R.drawable.com_aoleyun_os));
break;
case "com.aoleyun.appstore":
mViewDataBinding.ivAppIcon.setImageDrawable(getDrawable(R.drawable.com_aoleyun_appstore));
break;
case "com.aoleyun.browser":
mViewDataBinding.ivAppIcon.setImageDrawable(getDrawable(R.drawable.com_aoleyun_browser));
break;
case "com.aoleyun.ailog":
mViewDataBinding.ivAppIcon.setImageDrawable(getDrawable(R.drawable.com_aoleyun_ailog));
break;
default:
case BuildConfig.APPLICATION_ID:
mViewDataBinding.ivAppIcon.setImageDrawable(getDrawable(R.mipmap.ic_launcher));
break;
}
} else {
finish();
}
}
public class BtnClick {
public void empty(View view) {
}
public void exit(View view) {
finish();
}
public void upgrade(View view) {
startService(new Intent(AppUpdateActivity.this, MainService.class));
if (mAppInfoData != null) {
DownloadEntity entity = Aria.download(this).getFirstDownloadEntity(mAppInfoData.getUrl());
if (null != entity) {
if (entity.isComplete()) {
JsonObject jsonObject = GsonUtils.getJsonObject(new Gson().toJson(mAppInfoData));
Utils.ariaDownload(AppUpdateActivity.this, mAppInfoData.getUrl(), jsonObject);
} else {
if (entity.getState() == STATE_RUNNING) {
Toaster.show("文件正在下载中");
finish();
} else {
Aria.download(this).resumeAllTask();
Toaster.show("正在下载");
finish();
}
}
} else {
JsonObject jsonObject = GsonUtils.getJsonObject(new Gson().toJson(mAppInfoData));
Utils.ariaDownload(AppUpdateActivity.this, mAppInfoData.getUrl(), jsonObject);
Toaster.show("正在下载更新");
finish();
}
}
}
}
}

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.activity.update;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.aoleyun.sn.base.mvvm.BaseViewModel;
import com.aoleyun.sn.databinding.ActivityAppUpdateBinding;
public class AppUpdateViewModel extends BaseViewModel<ActivityAppUpdateBinding, ActivityEvent> {
@Override
public ActivityAppUpdateBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
}

View File

@@ -17,6 +17,7 @@ public class AppUpdateInfo implements Serializable {
@SerializedName("package")
String packages;
String app_md5;
int is_forcedown;
public int getId() {
return id;
@@ -74,6 +75,14 @@ public class AppUpdateInfo implements Serializable {
this.app_md5 = app_md5;
}
public int getIs_forcedown() {
return is_forcedown;
}
public void setIs_forcedown(int is_forcedown) {
this.is_forcedown = is_forcedown;
}
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();

View File

@@ -8,6 +8,10 @@ public class CommonConfig {
public static final String DEFAULT_DESKTOP_PACKAGE = "default_desktop_package_key";
/**
* 设备重启标志 重启后请求接口Service重启不请求
*/
public final static String DEVICES_REBOOT = "device_reboot_mark";
/*爱华解锁标识*/
public final static String AIHUA_UNLOCK = "Aihua_unlock_state";

View File

@@ -22,6 +22,7 @@ import com.alibaba.sdk.android.push.CloudPushService;
import com.alibaba.sdk.android.push.CommonCallback;
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.activity.update.AppUpdateActivity;
import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.bean.AdminAppInfo;
import com.aoleyun.sn.bean.AppAttr;
@@ -1004,10 +1005,11 @@ public class NetInterfaceManager {
Log.e("checkAoleyunUpdate", "onNext: " + jsonString);
if (appUpdateInfos != null && appUpdateInfos.size() != 0) {
cacheHelper.put(UrlAddress.CHECK_UPDATE, jsonString);
for (AppUpdateInfo info : appUpdateInfos) {
JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject();
JgyUtils.getInstance().installAPK(jsonObject);
}
// for (AppUpdateInfo info : appUpdateInfos) {
// JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject();
// JgyUtils.getInstance().installAPK(jsonObject);
// }
getAllAppUpdate(appUpdateInfos);
} else {
cacheHelper.put(UrlAddress.CHECK_UPDATE, "");
}
@@ -1027,6 +1029,59 @@ public class NetInterfaceManager {
});
}
/**
* @param appInfos 获取所有app直接更新
*/
public void getAllAppUpdate(List<AppUpdateInfo> appInfos) {
if (appInfos == null || appInfos.size() == 0) {
return;
}
HashMap<String, AppUpdateInfo> appInfoHashMap = new HashMap<>();
for (AppUpdateInfo appInfo : appInfos) {
if (appInfo == null) continue;
appInfoHashMap.put(appInfo.getPackages(), appInfo);
}
PackageManager pm = mContext.getPackageManager();
for (Map.Entry<String, AppUpdateInfo> entry : appInfoHashMap.entrySet()) {
PackageInfo packageInfo = null;
try {
packageInfo = pm.getPackageInfo(entry.getKey(), 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (entry.getValue() != null) {
if (packageInfo == null) {
//未安装
String s = new Gson().toJson(entry.getValue());
Log.e(TAG, "getAllAppUpdate: " + s);
JsonObject jsonObject = GsonUtils.getJsonObject(s);
Utils.ariaDownload(mContext, entry.getValue().getUrl(), jsonObject);
} else {
long appVersionCode;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
appVersionCode = packageInfo.getLongVersionCode();
} else {
appVersionCode = packageInfo.versionCode;
}
long versionCode = entry.getValue().getVersion_code();
//版本升级
if (appVersionCode < versionCode) {
int is_forcedown = entry.getValue().getIs_forcedown();
if (is_forcedown == 1) {
JsonObject jsonObject = GsonUtils.getJsonObject(new Gson().toJson(entry.getValue()));
Utils.ariaDownload(mContext, entry.getValue().getUrl(), jsonObject);
} else {
Intent intent = new Intent(mContext, AppUpdateActivity.class);
intent.putExtra("appUpdateInfo", entry.getValue());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
}
}
}
}
}
public interface UpdateCallback {
void onUpdate(List<AppUpdateInfo> appUpdateInfos);
}
@@ -2582,10 +2637,10 @@ public class NetInterfaceManager {
public void onNext(@NonNull BaseResponse response) {
if (response.code == OK) {
cacheHelper.put(UrlAddress.SEND_DEVICES, macJson);
Log.e("sendMACAddress", response.msg);
Log.e("sendMACAddress", "onNext: " + response.msg);
SPUtils.put(mContext, "macJson", macJson);
} else {
Log.e("sendMACAddress", response.toString());
Log.e("sendMACAddress", "onNext: " + response.toString());
}
}

View File

@@ -24,6 +24,7 @@ import android.view.Gravity;
import android.view.WindowManager;
import com.aoleyun.sn.R;
import com.aoleyun.sn.activity.AudioActivity;
import com.aoleyun.sn.activity.main.MainActivity;
import com.aoleyun.sn.bean.ApkInfoPush;
import com.aoleyun.sn.bean.BaseResponse;
@@ -1171,8 +1172,10 @@ public class PushManager {
}
private void playSound(String extras) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
defaultCallMediaPlayer(mContext);
// defaultCallMediaPlayer(mContext);
Intent intent = new Intent(mContext, AudioActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
/**

View File

@@ -24,6 +24,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
public class BootReceiver extends BroadcastReceiver {
private static String TAG = "BootReceiver" + ":aoleyunsn";
public static final String BOOT_COMPLETED = "aoleyun.intent.action.BOOT_COMPLETED";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
static {
getLockedState();
@@ -74,7 +75,8 @@ public class BootReceiver extends BroadcastReceiver {
default:
break;
case Intent.ACTION_BOOT_COMPLETED:
MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE).encode(ConnectManager.REBOOT_LAST_ONNECT_TIME, System.currentTimeMillis());
mMMKV.encode(CommonConfig.DEVICES_REBOOT, true);
mMMKV.encode(ConnectManager.REBOOT_LAST_ONNECT_TIME, System.currentTimeMillis());
if ((int) SPUtils.get(context, CommonConfig.FIRST_STARTUP, 0) == 0) {
LogDBManager.getInstance().creatRebootLog("首次启动", TimeUtils.transferLongToDate(System.currentTimeMillis()));
SPUtils.put(context, CommonConfig.FIRST_STARTUP, 1);

View File

@@ -22,7 +22,7 @@ public class MainSContact {
/*分支3 上传信息*/
/*上传联网时间*/
void sendNetwork(List<Long> time);
void sendNetwork(List<Long> time);
/*发送mac地址*/
void sendMacAddress();
/*更新设备信息*/

View File

@@ -86,7 +86,7 @@ public class MainSPresenter implements MainSContact.Presenter {
@Override
public void getLockedState() {
Log.e(TAG, "getLockedState: ");
if (JgyUtils.getInstance().isAihuaFramwwork()) {
if (JgyUtils.getInstance().isAihuaFramework()) {
int aihuaUnlock = Settings.System.getInt(mContext.getContentResolver(), CommonConfig.AIHUA_UNLOCK, 0);
if (aihuaUnlock == 1) {
return;
@@ -235,14 +235,14 @@ public class MainSPresenter implements MainSContact.Presenter {
if (JgyUtils.isOfficialVersion()) {
mView.updateDeviceInfoFinish();
}
if (!JgyUtils.getInstance().tagEmpty()) {
// if (!JgyUtils.getInstance().tagEmpty()) {
NetInterfaceManager.getInstance().updateDeviceInfo(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.updateDeviceInfoFinish();
}
});
}
// }
}
/**
@@ -250,14 +250,14 @@ public class MainSPresenter implements MainSContact.Presenter {
*/
@Override
public void sendInstalled() {
if (!JgyUtils.getInstance().tagEmpty()) {
// if (!JgyUtils.getInstance().tagEmpty()) {
NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.sendInstalledFinish();
}
});
}
// }
}
/**
@@ -375,7 +375,7 @@ public class MainSPresenter implements MainSContact.Presenter {
mView.getDefaultDesktopFinish();
} else {
int aihuaUnlock = Settings.System.getInt(mContext.getContentResolver(), CommonConfig.AIHUA_UNLOCK, 0);
if (JgyUtils.getInstance().isAihuaFramwwork() && aihuaUnlock == 1) {
if (JgyUtils.getInstance().isAihuaFramework() && aihuaUnlock == 1) {
Log.e(TAG, "getDefaultDesktop: " + "Device aihua");
mView.getDefaultDesktopFinish();
} else {

View File

@@ -108,14 +108,14 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
String WiFiAlias = Utils.getWifiAlias(this);
Log.e("OnNetworkStatusChanged", "onConnected: " + WiFiAlias);
JgyUtils.getInstance().addNetworkConnectedTime(System.currentTimeMillis() / 1000);
mPresenter.sendNetwork(JgyUtils.getInstance().getNetworkConnectedTime());
if (JgyUtils.getInstance().isScreenOn()) {
TimeTask task = new TimeTask();
task.execute("ntp.aliyun.com");
if (!checkAoleyunApp()) {
mPresenter.checkAoleyunUpdate();
}
mPresenter.sendNetwork(JgyUtils.getInstance().getNetworkConnectedTime());
mPresenter.getLockedState();
mInternetConnected.onConnected(WiFiAlias);
}
}
@@ -186,7 +186,49 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
});
}
private static KillAppListener killAppListener;
private InternetConnected mInternetConnected;
public interface InternetConnected {
void onConnected(String alias);
}
private final ObservableOnSubscribe<String> networkSubscribe = new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter emitter) throws Exception {
mInternetConnected = new InternetConnected() {
@Override
public void onConnected(String alias) {
Log.e(TAG, "networkSubscribe: onConnected " + alias);
emitter.onNext(alias);
}
};
}
};
private Observer<String> networkObserver = new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("networkObserver", "onSubscribe: ");
}
@Override
public void onNext(String action) {
Log.e("networkObserver", "onNext: " + action);
mPresenter.getLockedState();
}
@Override
public void onError(Throwable e) {
Log.e("networkObserver", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("networkObserver", "onComplete: ");
}
};
private KillAppListener killAppListener;
public interface KillAppListener {
void killApp(String action);
@@ -217,6 +259,10 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
JgyUtils.getInstance().killPackage(PackageNames.NOTIFICATIONS);
JgyUtils.getInstance().killPackage(PackageNames.BROWSER);
JgyUtils.getInstance().killPackage(PackageNames.AILOG);
JgyUtils.getInstance().killPackage("com.jxw.launcher");
JgyUtils.getInstance().killPackage("com.jxw.newyouer.video");
JgyUtils.getInstance().killPackage("com.jxw.mskt.video");
// JgyUtils.getInstance().killPackage("com.ygyb.yischool");
}
@@ -446,7 +492,14 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
TimeTask task = new TimeTask();
task.execute("ntp.aliyun.com");
mPresenter.getLockedState();
boolean reboot = mMMKV.decodeBool(CommonConfig.DEVICES_REBOOT, false);
if (reboot) {
mPresenter.getLockedState();
mMMKV.encode(CommonConfig.DEVICES_REBOOT, false);
Log.e(TAG, "onCreate: device rebooted");
} else {
Log.e(TAG, "onCreate: device not reboot");
}
Settings.Global.putString(getContentResolver(), "AOLE_SERIAL", Utils.getSerial(MainService.this));
@@ -561,6 +614,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
.throttleLast(30, TimeUnit.SECONDS)
// .throttleLast(3, TimeUnit.SECONDS)
.subscribe(killObserver);
Observable.create(networkSubscribe)
.throttleLast(1, TimeUnit.HOURS)
.subscribe(networkObserver);
JgyUtils.getInstance().checkAoleyunApp();
}
@@ -1133,9 +1191,43 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
} else {
mPresenter.getFirstConnect();
mPresenter.getStudesInfo();
mPresenter.getSystemSettingBegin();
mPresenter.getAppLimit();
mPresenter.getForceDownload();
mPresenter.getDefaultDesktop();
mPresenter.setLogoImg();
mPresenter.getWallpaper();
mPresenter.getAllAppList();
mPresenter.getBrowserBookmarks();
mPresenter.getBrowserWhiteList();
mPresenter.getDesktopIcon();
mPresenter.getAppAutoStartUpdateAndNet();
mPresenter.getSnAppAttr();
mPresenter.getAppIdControl();
mPresenter.setAppinsideWeb();
mPresenter.getSystemSetting();
mPresenter.getDefaultApp();
mPresenter.setTopApp();
mPresenter.getPoweroffTime();
mPresenter.getSnTimeControl();
mPresenter.getSnSetting();
mPresenter.getCloudLessonSettings();
mPresenter.getEbagCode();
mPresenter.getBlackList();
mPresenter.getWhiteList();
mPresenter.getWiFiPasswd();
}
mPresenter.getDeveloper();
mPresenter.sendMacAddress();
mPresenter.updateDeviceInfo();
mPresenter.sendInstalled();
mPresenter.checkAoleyunUpdate();
mPresenter.checkTestUpdate();
mPresenter.getDeveloper();
mPresenter.getRomApp();
mPresenter.getScreenLockState();
mPresenter.geteFence();
}
/**
@@ -1152,7 +1244,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
SysSettingUtils.setDisableSetting(this);
JgyUtils.getInstance().writeAppPackageList();
}
mPresenter.getSystemSettingBegin();
}
@Override
@@ -1167,23 +1258,22 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void sendMacFinish() {
mPresenter.updateDeviceInfo();
}
@Override
public void updateDeviceInfoFinish() {
mPresenter.sendInstalled();
}
@Override
public void sendInstalledFinish() {
Log.e(TAG, "sendInstalledFinish: ");
mPresenter.checkAoleyunUpdate();
}
@Override
public void checkAoleyunUpdateFinish() {
mPresenter.checkTestUpdate();
}
@Override
@@ -1193,12 +1283,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void getDeveloperFinish() {
mPresenter.getRomApp();
}
@Override
public void getRomAppFinish() {
mPresenter.getScreenLockState();
}
@Override
@@ -1218,7 +1307,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
SPUtils.put(this, "is_screen_lock", false);
SPUtils.put(this, "screen_tips", "");
}
mPresenter.geteFence();
}
@Override
@@ -1228,107 +1316,107 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void setSystemSetting() {
mPresenter.getAppLimit();
}
@Override
public void getAppLimitFinish() {
mPresenter.getForceDownload();
}
@Override
public void getForceDownloadFinish() {
mPresenter.getDefaultDesktop();
}
@Override
public void getDefaultDesktopFinish() {
mPresenter.setLogoImg();
}
@Override
public void setLogoImgFinish() {
mPresenter.getWallpaper();
}
@Override
public void getWallpaperFinish() {
mPresenter.getAllAppList();
}
@Override
public void getAllAppListFinish() {
mPresenter.getBrowserBookmarks();
}
@Override
public void getBrowserBookmarksFinish() {
mPresenter.getBrowserWhiteList();
}
@Override
public void setBrowserWhiteList() {
mPresenter.getDesktopIcon();
}
@Override
public void getDesktopIconFinish() {
mPresenter.getAppAutoStartUpdateAndNet();
}
@Override
public void getAppAutoStartUpdateAndNetFinish() {
mPresenter.getSnAppAttr();
}
@Override
public void getSnAppAttrFinish() {
mPresenter.getAppIdControl();
}
@Override
public void getAppIdControlFinish() {
mPresenter.setAppinsideWeb();
}
@Override
public void setAppinsideWebFinish() {
mPresenter.getSystemSetting();
}
@Override
public void getSystemSettingFinish() {
mPresenter.getDefaultApp();
}
@Override
public void setDefaultAppFinish() {
mPresenter.setTopApp();
}
@Override
public void setTopAppFinish() {
mPresenter.getPoweroffTime();
}
@Override
public void setPoweroffTime() {
mPresenter.getSnTimeControl();
}
@Override
public void getSnTimeControlFinish() {
mPresenter.getSnSetting();
}
@Override
public void getSnSettingFinish() {
mPresenter.getCloudLessonSettings();
}
@Override
public void setCloudLessonSettings() {
mPresenter.getEbagCode();
}
@Override
@@ -1340,7 +1428,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
// mPresenter.getBlackList();
Log.e(TAG, "getEBagCodeFinish: " + "未激活");
}
mPresenter.getBlackList();
}
@Deprecated
@@ -1352,13 +1440,12 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void getBlackListFinish() {
Log.e(TAG, "getBlackListFinish: ");
mPresenter.getWhiteList();
}
@Override
public void getWhiteListFinish() {
Log.e(TAG, "getWhiteListFinish: ");
mPresenter.getWiFiPasswd();
}
@Override

View File

@@ -2106,8 +2106,13 @@ public class JgyUtils {
if (oldStatu == (state ^ 1)) {
Log.e(TAG, "setDeveloperOptions: oldStatu = " + oldStatu + " no changed");
}
//这个需要反着来
Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state ^ 1);
if (MT8768Tag.equalsIgnoreCase(BuildConfig.platform)) {
Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state);
} else {
//这个需要反着来
Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state ^ 1);
}
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));
@@ -3152,7 +3157,7 @@ public class JgyUtils {
return Build.HARDWARE;
}
public boolean isAihuaFramwwork() {
public boolean isAihuaFramework() {
return (Utils.getProperty("ro.build.display.id", "获取失败").contains("_aihua"));
}
@@ -3171,8 +3176,17 @@ public class JgyUtils {
public boolean isScreenOn() {
PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
boolean isScreenOn;
// 使用新版本的 API更准确
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
isScreenOn = powerManager.isInteractive();
} else {
// 旧版本 API已过时但用于兼容低版本系统
isScreenOn = powerManager.isScreenOn();
}
Log.e(TAG, "isScreenOn: " + isScreenOn);
return isScreenOn;
//true为打开false为关闭
return powerManager.isInteractive();
}
private static final String CONNECTED_TIME_KEY = "connectedTimeKey";

View File

@@ -0,0 +1,119 @@
package com.aoleyun.sn.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.KeyguardManager;
import android.content.Context;
import android.os.Build;
import android.os.PowerManager;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.RequiresApi;
public class WakeUpUtils {
/**
* 唤醒手机屏幕并解锁
*/
public static void wakeUpAndUnlock(Activity activity) {
// 获取电源管理器对象
PowerManager pm = (PowerManager) activity.getApplicationContext()
.getSystemService(Context.POWER_SERVICE);
boolean screenOn = pm.isScreenOn();
Log.d("WakeScreen0", "screenOn: " + screenOn);
if (!screenOn) {
// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
@SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
wl.acquire(10000); // 点亮屏幕
wl.release(); // 释放
}
// 屏幕解锁
KeyguardManager keyguardManager = (KeyguardManager) activity.getApplicationContext()
.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("unLock");
// 屏幕锁定
// keyguardLock.reenableKeyguard();
keyguardLock.disableKeyguard(); // 解锁
unLockScreen(activity);
}
private static void unLockScreen(Activity activity) {
final Window win = activity.getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
}
/**
* 唤醒手机屏幕并解锁
*/
@RequiresApi(api = Build.VERSION_CODES.O)
public static void wakeUpAndUnlockScreen(Activity activity) {
Window win = activity.getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
PowerManager pm = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
@SuppressLint("InvalidWakeLockTag")
PowerManager.WakeLock wakelock = pm.newWakeLock(
PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP, "xx");
wakelock.acquire();
wakelock.release();
KeyguardManager keyguardManager = (KeyguardManager) activity.getApplicationContext()
.getSystemService(Context.KEYGUARD_SERVICE);
if (activity == null) return;
keyguardManager.requestDismissKeyguard(activity, new KeyguardManager.KeyguardDismissCallback() {
@Override
public void onDismissError() {
super.onDismissError();
Log.d("xxx-->", "1 onDismissError");
}
@Override
public void onDismissSucceeded() {
super.onDismissSucceeded();
Log.d("xxx-->", "1 onDismissSucceeded");
}
@Override
public void onDismissCancelled() {
super.onDismissCancelled();
Log.d("xxx-->", "1 onDismissCancelled");
}
});
if (activity == null) return;
keyguardManager.requestDismissKeyguard(activity, new KeyguardManager.KeyguardDismissCallback() {
@Override
public void onDismissError() {
super.onDismissError();
Log.d("xxx-->", "2 onDismissError");
}
@Override
public void onDismissSucceeded() {
super.onDismissSucceeded();
Log.d("xxx-->", "2 onDismissSucceeded");
}
@Override
public void onDismissCancelled() {
super.onDismissCancelled();
Log.d("xxx-->", "2 onDismissCancelled");
}
});
}
}