version:1.1.3
fix: update:修改其他应用获取sn,优化登录后获取设置,增加荣耀应用信息上传
This commit is contained in:
@@ -17,8 +17,8 @@ android {
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 29
|
||||
|
||||
versionCode 10
|
||||
versionName "1.0.9"
|
||||
versionCode 14
|
||||
versionName "1.1.3"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
android:enabled="true"
|
||||
android:excludeFromRecents="true"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:launchMode="singleTop"
|
||||
android:resizeableActivity="true"
|
||||
android:resumeWhilePausing="true"
|
||||
android:screenOrientation="landscape"
|
||||
@@ -274,8 +274,8 @@
|
||||
<activity
|
||||
android:name=".activity.debug.DebugActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/AppWhiteThemeWithoutFitsSystemWindows"
|
||||
android:screenOrientation="landscape" />
|
||||
android:screenOrientation="landscape"
|
||||
android:theme="@style/AppWhiteThemeWithoutFitsSystemWindows" />
|
||||
<activity
|
||||
android:name=".eula.LicenseActivity"
|
||||
android:exported="false" />
|
||||
@@ -361,6 +361,11 @@
|
||||
android:enabled="true"
|
||||
android:exported="true" />
|
||||
|
||||
<service
|
||||
android:name=".service.RemoteService"
|
||||
android:enabled="true"
|
||||
android:exported="true" />
|
||||
|
||||
<receiver
|
||||
android:name=".receiver.InstallResultReceiver"
|
||||
android:enabled="true"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// IGetInfoInterface.aidl
|
||||
package com.uiui.zy;
|
||||
package com.xwad.os;
|
||||
|
||||
// Declare any non-default types here with import statements
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// KeepAliveConnection.aidl
|
||||
package com.uiui.zy;
|
||||
package com.xwad.os;
|
||||
|
||||
// Declare any non-default types here with import statements
|
||||
|
||||
@@ -10,7 +10,6 @@ import android.media.SoundPool;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -19,6 +18,7 @@ import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.tuo.customview.VerificationCodeView;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.R;
|
||||
@@ -36,6 +36,8 @@ import java.util.stream.Collectors;
|
||||
public class ExitActivity extends BaseDataBindingActivity {
|
||||
private static final String TAG = "ExitActivity";
|
||||
|
||||
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||||
|
||||
private ActivityExitBinding mBinding;
|
||||
|
||||
private SoundPool soundPool;
|
||||
@@ -119,7 +121,7 @@ public class ExitActivity extends BaseDataBindingActivity {
|
||||
return;
|
||||
}
|
||||
Log.e(TAG, "inputComplete: " + content);
|
||||
String password = Settings.Global.getString(getContentResolver(), CommonConfig.LOCK_SCREEN_PASSWORD);
|
||||
String password = mMMKV.decodeString(CommonConfig.LOCK_SCREEN_PASSWORD, CommonConfig.DEFAULT_PASSWORD);
|
||||
if ((!TextUtils.isEmpty(content) && !TextUtils.isEmpty(password))) {
|
||||
if (password.equals(content)) {
|
||||
// Utils.exitDesktop(this);
|
||||
|
||||
@@ -12,7 +12,6 @@ import android.view.View;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.blankj.utilcode.util.FileUtils;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
@@ -23,7 +22,7 @@ import com.xwad.os.bean.AlarmClockData;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.databinding.ActivityNoticeBinding;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.ScreenUtils;
|
||||
import com.xwad.os.utils.Utils;
|
||||
import com.xwad.os.utils.WakeUpUtils;
|
||||
@@ -139,7 +138,7 @@ public class NoticeActivity extends BaseDataBindingActivity {
|
||||
mBinding.clVoice.setVisibility(View.VISIBLE);
|
||||
String fileName = Utils.getFileNamefromURL(voiceUrl);
|
||||
File file = new File(Utils.getDownLoadPath(NoticeActivity.this) + fileName);
|
||||
String fileMD5 = FileUtils.getFileMD5ToString(file);
|
||||
String fileMD5 = com.blankj.utilcode.util.FileUtils.getFileMD5ToString(file);
|
||||
// if (!md5.equals(fileMD5)) {
|
||||
// // TODO: 2021/12/16
|
||||
// } else {
|
||||
@@ -165,14 +164,14 @@ public class NoticeActivity extends BaseDataBindingActivity {
|
||||
}
|
||||
if (!TextUtils.isEmpty(filePath)) {
|
||||
mBinding.clVp.setVisibility(View.VISIBLE);
|
||||
String fileType = FileUtil.getFileType(filePath);
|
||||
String fileType = FileUtils.getFileType(filePath);
|
||||
Log.e(TAG, "showData: " + fileType);
|
||||
if (FileUtil.isPictureFile(fileType)) {
|
||||
if (FileUtils.isPictureFile(fileType)) {
|
||||
mBinding.jzVideo.setVisibility(View.GONE);
|
||||
mBinding.ivDictation.setVisibility(View.VISIBLE);
|
||||
RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtils.dip2px(this, 16F)));
|
||||
Glide.with(NoticeActivity.this).load(filePath).apply(options).into(mBinding.ivDictation);
|
||||
} else if (FileUtil.isVideoFile(fileType)) {
|
||||
} else if (FileUtils.isVideoFile(fileType)) {
|
||||
mBinding.jzVideo.setVisibility(View.VISIBLE);
|
||||
mBinding.ivDictation.setVisibility(View.GONE);
|
||||
String fileName = filePath.substring(filePath.lastIndexOf("/") + 1, filePath.length());
|
||||
|
||||
@@ -5,7 +5,6 @@ import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -14,6 +13,7 @@ import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.tuo.customview.VerificationCodeView;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.activity.addicon.AddIconActivity;
|
||||
@@ -25,6 +25,8 @@ import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
||||
public class PasswordActivity extends BaseDataBindingActivity {
|
||||
private static final String TAG = "PasswordActivity";
|
||||
|
||||
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||||
|
||||
private ActivityPasswdBinding mBinding;
|
||||
|
||||
// @Override
|
||||
@@ -134,7 +136,7 @@ public class PasswordActivity extends BaseDataBindingActivity {
|
||||
return;
|
||||
}
|
||||
Log.e(TAG, "inputComplete: " + content);
|
||||
String password = Settings.Global.getString(getContentResolver(), CommonConfig.LOCK_SCREEN_PASSWORD);
|
||||
String password = mMMKV.decodeString(CommonConfig.LOCK_SCREEN_PASSWORD, CommonConfig.DEFAULT_PASSWORD);
|
||||
if ((!TextUtils.isEmpty(content) && !TextUtils.isEmpty(password))) {
|
||||
if (password.equals(content)) {
|
||||
startActivity(new Intent(PasswordActivity.this, AddIconActivity.class));
|
||||
|
||||
@@ -46,6 +46,7 @@ import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.PhraseContent;
|
||||
import com.xwad.os.bean.UserInfo;
|
||||
import com.xwad.os.bean.jxw.TabBean;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.databinding.ActivityHomeBinding;
|
||||
import com.xwad.os.dialog.DeactivateDialog;
|
||||
@@ -69,6 +70,7 @@ import com.xwad.os.jxw.event.UpdateColorEvent;
|
||||
import com.xwad.os.jxw.event.UpdateGradeEvent;
|
||||
import com.xwad.os.jxw.fragment.SztzFragment;
|
||||
import com.xwad.os.jxw.util.Util;
|
||||
import com.xwad.os.manager.AmapManager;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.permission.PermissionUtils;
|
||||
import com.xwad.os.receiver.AoleDeviceAdminReceiver;
|
||||
@@ -107,6 +109,13 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
this.add(BuildConfig.APPLICATION_ID);
|
||||
}};
|
||||
|
||||
/*只能加servicecenter*/
|
||||
public static final ArrayList<String> honorSystemApp = new ArrayList<String>() {{
|
||||
this.add("com.hihonor.servicecenter");
|
||||
// this.add("com.hihonor.parentcontrol");
|
||||
// this.add("com.hihonor.android.launcher");
|
||||
}};
|
||||
|
||||
private ArrayList<String> mPersistentApp = new ArrayList<String>() {{
|
||||
this.add(BuildConfig.APPLICATION_ID);
|
||||
this.add("com.jxw.launcher");
|
||||
@@ -215,13 +224,13 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
public void initData() {
|
||||
mViewModel.mAppUpdateInfoData.observe(this, new Observer<AppInfo>() {
|
||||
@Override
|
||||
public void onChanged(AppInfo appUpdateInfo) {
|
||||
if (appUpdateInfo == null) {
|
||||
public void onChanged(AppInfo appInfo) {
|
||||
if (appInfo == null) {
|
||||
// Toaster.show("已是最新版本");
|
||||
} else {
|
||||
if (ApkUtils.isUpdate(HomeActivity.this, appUpdateInfo)) {
|
||||
if (ApkUtils.isUpdate(HomeActivity.this, appInfo)) {
|
||||
Intent intent = new Intent(HomeActivity.this, UpdateActivity.class);
|
||||
intent.putExtra("appUpdateInfo", appUpdateInfo);
|
||||
intent.putExtra("appInfo", appInfo);
|
||||
startActivity(intent);
|
||||
Toaster.show("有新的版本需要更新");
|
||||
} else {
|
||||
@@ -230,7 +239,26 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
}
|
||||
}
|
||||
});
|
||||
// mViewModel.checkUpdate();
|
||||
mViewModel.checkUpdate();
|
||||
mViewModel.mAppUpdateInfoUiUiOSData.observe(this, new Observer<AppUpdateInfo>() {
|
||||
@Override
|
||||
public void onChanged(AppUpdateInfo appUpdateInfo) {
|
||||
if (appUpdateInfo == null) {
|
||||
// Toaster.show("已是最新版本");
|
||||
} else {
|
||||
if (ApkUtils.isUpdate(HomeActivity.this, appUpdateInfo)) {
|
||||
ApkUtils.checkAppUpdate(HomeActivity.this, appUpdateInfo);
|
||||
// Toaster.show("有新的版本需要更新");
|
||||
} else {
|
||||
// Toaster.show("已是最新版本");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// mViewModel.checkUpdateUiUiOS(BuildConfig.APPLICATION_ID);
|
||||
mViewModel.checkUpdateUiUiOS("com.xwad.store");
|
||||
|
||||
|
||||
mViewModel.mGetCodeData.observe(this, new Observer<Boolean>() {
|
||||
@Override
|
||||
public void onChanged(Boolean aBoolean) {
|
||||
@@ -261,8 +289,8 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
mViewModel.getPhrase();
|
||||
|
||||
mViewModel.getSystemSettings();
|
||||
mViewModel.getOauthToken();
|
||||
mViewModel.getAnswerControlStatus();
|
||||
// mViewModel.getOauthToken();
|
||||
// mViewModel.getAnswerControlStatus();
|
||||
mViewModel.getPublicIp();
|
||||
}
|
||||
|
||||
@@ -543,10 +571,8 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
// AdminManager.getInstance().setRestoreFactoryDisabled(true);
|
||||
AdminManager.getInstance().setDefaultLauncher("com.xwad.os", "com.xwad.os.activity.home.HomeActivity");
|
||||
AdminManager.getInstance().addIgnoreFrequentRelaunchAppList("com.xwad.os");
|
||||
// TODO: 2026/1/24 只能加这个包名,其他加不进去
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.servicecenter");
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.parentcontrol");
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.android.launcher");
|
||||
// AdminManager.getInstance().setStatusBarExpandPanelDisabled(true);
|
||||
AdminManager.getInstance().setQuickToolsDisabled(true);
|
||||
|
||||
Log.e(TAG, "setDefault: time = " + (System.currentTimeMillis() - time) + "ms");
|
||||
@@ -774,12 +800,12 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
}
|
||||
|
||||
private void setDefaultDesktop() {
|
||||
// boolean is_activation = AdminManager.getInstance().getSnIsActivation();
|
||||
// if (is_activation) {
|
||||
// AdminManager.getInstance().setDefaultLauncher(BuildConfig.APPLICATION_ID);
|
||||
// } else {
|
||||
//// AdminManager.getInstance().setDefaultDesktop(ApkUtils.ANDROID_LAUNCHER3_PACKAGE_NAME);
|
||||
// }
|
||||
if (!JgyUtils.getInstance().isDefaultLauncher("com.xwad.os", "com.xwad.os.activity.home.HomeActivity")) {
|
||||
Log.e(TAG, "setDefaultDesktop: ");
|
||||
AdminManager.getInstance().setDefaultLauncher("com.xwad.os", "com.xwad.os.activity.home.HomeActivity");
|
||||
} else {
|
||||
Log.e(TAG, "setDefaultDesktop: isDefaultLauncher");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -863,7 +889,7 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
// getPermissions();
|
||||
// }
|
||||
// }
|
||||
// setDefaultDesktop();
|
||||
setDefaultDesktop();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -909,12 +935,67 @@ public class HomeActivity extends BaseMvvmActivity<HomeViewModel, ActivityHomeBi
|
||||
registTimeReceiver();
|
||||
registBateeryReceiver();
|
||||
registerRefreshReceiver();
|
||||
registmUpdateAddressReceiver();
|
||||
registmNewAppReceiver();
|
||||
}
|
||||
|
||||
private void unregisterReceivers() {
|
||||
unRegistTimeReceiver();
|
||||
unregistBateeryReceiver();
|
||||
unregisterRefreshReceiver();
|
||||
if (mUpdateAddressReceiver != null) {
|
||||
unregisterReceiver(mUpdateAddressReceiver);
|
||||
}
|
||||
if (mNewAppReceiver != null) {
|
||||
unregisterReceiver(mNewAppReceiver);
|
||||
}
|
||||
}
|
||||
|
||||
private void registmNewAppReceiver() {
|
||||
mNewAppReceiver = new NewAppReceiver();
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||
filter.addAction(Intent.ACTION_PACKAGE_ADDED);
|
||||
// filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
|
||||
filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
|
||||
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
|
||||
filter.addDataScheme("package");
|
||||
registerReceiver(mNewAppReceiver, filter);
|
||||
}
|
||||
|
||||
private NewAppReceiver mNewAppReceiver;
|
||||
|
||||
class NewAppReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
Log.e(TAG, "onReceive: " + action);
|
||||
if (Intent.ACTION_PACKAGE_ADDED.equals(action) || Intent.ACTION_PACKAGE_REMOVED.equals(action)
|
||||
// || Intent.ACTION_PACKAGE_CHANGED.equals(action)
|
||||
) {
|
||||
// NetInterfaceManager.getInstance().updateAdminInfo();
|
||||
// NetInterfaceManager.getInstance().SendAppInstallInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void registmUpdateAddressReceiver() {
|
||||
mUpdateAddressReceiver = new UpdateAddressReceiver();
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(CommonConfig.IFLYTEK_UPDATE_ADDRESS_ACTION);
|
||||
registerReceiver(mUpdateAddressReceiver, filter);
|
||||
}
|
||||
|
||||
private UpdateAddressReceiver mUpdateAddressReceiver;
|
||||
|
||||
class UpdateAddressReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (CommonConfig.IFLYTEK_UPDATE_ADDRESS_ACTION.equals(action)) {
|
||||
AmapManager.getInstance().startLocation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//时间
|
||||
|
||||
@@ -10,22 +10,20 @@ import com.hjq.toast.Toaster;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.android.FragmentEvent;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.base.mvvm.BaseViewModel;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.CodeBean;
|
||||
import com.xwad.os.bean.PhraseContent;
|
||||
import com.xwad.os.bean.SnInfo;
|
||||
import com.xwad.os.bean.SystemSettings;
|
||||
import com.xwad.os.bean.UserInfo;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.databinding.ActivityHomeBinding;
|
||||
import com.xwad.os.jxw.SPUtils;
|
||||
import com.xwad.os.manager.DeviceSNManager;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.ActivationUtil;
|
||||
@@ -165,6 +163,41 @@ public class HomeViewModel extends BaseViewModel<ActivityHomeBinding, ActivityEv
|
||||
});
|
||||
}
|
||||
|
||||
public MutableLiveData<AppUpdateInfo> mAppUpdateInfoUiUiOSData = new MutableLiveData<>();
|
||||
|
||||
public void checkUpdateUiUiOS(String pkg) {
|
||||
NetInterfaceManager.getInstance().getCheckUpdateObservable(pkg)
|
||||
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<AppUpdateInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("checkUpdate", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<AppUpdateInfo> appUpdateInfoBaseResponse) {
|
||||
Log.e("checkUpdate", "onNext: " + appUpdateInfoBaseResponse);
|
||||
if (appUpdateInfoBaseResponse.code == 200) {
|
||||
AppUpdateInfo appUpdateInfo = appUpdateInfoBaseResponse.data;
|
||||
mAppUpdateInfoUiUiOSData.setValue(appUpdateInfo);
|
||||
} else {
|
||||
mAppUpdateInfoUiUiOSData.setValue(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("checkUpdate", "onError: ");
|
||||
Toaster.show("网络连接失败");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("checkUpdate", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void sendAPPUsage() {
|
||||
boolean activation = ActivationUtil.getInstance().isLogin();
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.xwad.os.base.mvvm.BaseMvvmActivity;
|
||||
import com.xwad.os.bean.LoginInfo;
|
||||
import com.xwad.os.databinding.ActivityLoginBinding;
|
||||
import com.xwad.os.service.SocketService;
|
||||
import com.xwad.os.service.main.MainService;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -56,6 +57,7 @@ public class LoginActivity extends BaseMvvmActivity<LoginViewModel, ActivityLogi
|
||||
public void onChanged(LoginInfo loginInfo) {
|
||||
Toaster.show("登录成功");
|
||||
startService(new Intent(LoginActivity.this, SocketService.class).setAction(SocketService.LOGIN_SUCCESSFUL));
|
||||
startService(new Intent(LoginActivity.this, MainService.class).setAction(SocketService.LOGIN_SUCCESSFUL));
|
||||
|
||||
Intent intent = new Intent();
|
||||
setResult(Activity.RESULT_OK, intent);
|
||||
|
||||
@@ -14,13 +14,11 @@ import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.base.mvvm.BaseViewModel;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.SnInfo;
|
||||
import com.xwad.os.bean.SystemSettings;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.databinding.ActivityMainBinding;
|
||||
import com.xwad.os.manager.DeviceSNManager;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.ActivationUtil;
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.hjq.toast.Toaster;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.base.mvvm.BaseMvvmActivity;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.databinding.ActivityUpdateBinding;
|
||||
import com.xwad.os.service.DownloadService;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.activity.ExitActivity;
|
||||
import com.xwad.os.activity.debug.DebugActivity;
|
||||
import com.xwad.os.activity.edit.EditActivity;
|
||||
import com.xwad.os.activity.permission.PermissionActivity;
|
||||
@@ -33,7 +32,6 @@ import com.xwad.os.activity.update.UpdateActivity;
|
||||
import com.xwad.os.base.BaseAlertDialogBuilder;
|
||||
import com.xwad.os.base.mvvm.BaseMvvmActivity;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.UserAvatarInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.custom.GlideEngine;
|
||||
@@ -43,15 +41,13 @@ import com.xwad.os.fragment.usercenter.account.AccountFragment;
|
||||
import com.xwad.os.fragment.usercenter.device.DeviceFragment;
|
||||
import com.xwad.os.fragment.usercenter.info.InfoFragment;
|
||||
import com.xwad.os.fragment.usercenter.parents.ParentsFragment;
|
||||
import com.xwad.os.manager.DeviceSNManager;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.ActivationUtil;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
import com.xwad.os.utils.ScreenUtils;
|
||||
import com.xwad.os.utils.Utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@@ -348,10 +344,10 @@ public class UserActivity extends BaseMvvmActivity<UserViewModel, ActivityUserBi
|
||||
if (ActivationUtil.getInstance().isLogin()) {
|
||||
File avatarFile;
|
||||
if (TextUtils.isEmpty(avatarFilePath)) {
|
||||
avatarFile = FileUtil.drawableToFile(UserActivity.this, R.drawable.default_avatar, "avatar");
|
||||
avatarFile = FileUtils.drawableToFile(UserActivity.this, R.drawable.default_avatar, "avatar");
|
||||
} else {
|
||||
Uri uri = Uri.parse(avatarFilePath);
|
||||
avatarFile = FileUtil.uriToFile(uri, UserActivity.this);
|
||||
avatarFile = FileUtils.uriToFile(uri, UserActivity.this);
|
||||
// avatarFile = new File(avatarFilePath);
|
||||
}
|
||||
MediaType mediaType = MediaType.Companion.parse("image/png");
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.base.mvvm.BaseViewModel;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.UserAvatarInfo;
|
||||
import com.xwad.os.databinding.ActivityUserBinding;
|
||||
|
||||
@@ -17,11 +17,11 @@ import com.bumptech.glide.load.DecodeFormat;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
import com.wgw.photo.preview.PhotoPreview;
|
||||
import com.wgw.photo.preview.interfaces.ImageLoader;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
@@ -48,7 +48,7 @@ public class HomeworkDetailPicAdapter extends RecyclerView.Adapter<HomeworkDetai
|
||||
public void onBindViewHolder(@NonNull Holder holder, int position) {
|
||||
String url = mUrls.get(position);
|
||||
GlideLoadUtils.getInstance().glideLoadSetSize(mContext, url, holder.nv_pic, R.mipmap.ic_launcher);
|
||||
File file = new File(FileUtil.getDownLoadPath(mContext) + FileUtil.getFileNamefromURL(url));
|
||||
File file = new File(FileUtils.getDownLoadPath(mContext) + FileUtils.getFileNamefromURL(url));
|
||||
if (file.exists()) {
|
||||
holder.iv_download.setVisibility(View.GONE);
|
||||
holder.nv_pic.setOnClickListener(new View.OnClickListener() {
|
||||
@@ -83,7 +83,7 @@ public class HomeworkDetailPicAdapter extends RecyclerView.Adapter<HomeworkDetai
|
||||
holder.iv_download.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
FileUtil.ariaDownloadUrl(mContext, url);
|
||||
FileUtils.ariaDownloadUrl(mContext, url);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -17,13 +17,13 @@ import com.bumptech.glide.load.DecodeFormat;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.bean.HomeworkBean;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
import com.xwad.os.utils.OpenFileUtil;
|
||||
import com.wgw.photo.preview.PhotoPreview;
|
||||
import com.wgw.photo.preview.interfaces.ImageLoader;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.bean.HomeworkBean;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
import com.xwad.os.utils.OpenFileUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
@@ -50,7 +50,7 @@ public class HomeworkDetailPicAdapter2 extends RecyclerView.Adapter<HomeworkDeta
|
||||
public void onBindViewHolder(@NonNull Holder holder, int position) {
|
||||
List<String> urls = mHomeworkBean.getFile_url();
|
||||
String url = urls.get(position);
|
||||
File file = new File(FileUtil.getDownLoadPath(mContext) + FileUtil.getFileNamefromURL(url));
|
||||
File file = new File(FileUtils.getDownLoadPath(mContext) + FileUtils.getFileNamefromURL(url));
|
||||
if (file.exists()) {
|
||||
GlideLoadUtils.getInstance().glideLoadSetSize(mContext, file, holder.nv_pic, R.mipmap.ic_launcher);
|
||||
holder.iv_download.setVisibility(View.GONE);
|
||||
@@ -95,11 +95,11 @@ public class HomeworkDetailPicAdapter2 extends RecyclerView.Adapter<HomeworkDeta
|
||||
holder.iv_download.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
FileUtil.ariaDownloadUrl(mContext, url);
|
||||
FileUtils.ariaDownloadUrl(mContext, url);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
FileUtil.ariaDownloadUrl(mContext, url);
|
||||
FileUtils.ariaDownloadUrl(mContext, url);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.shehuan.niv.NiceImageView;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.activity.homework.HomeworkDetailsActivity;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.GlideLoadUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -45,7 +45,7 @@ public class HomeworkPicAdapter extends RecyclerView.Adapter<HomeworkPicAdapter.
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull Holder holder, int position) {
|
||||
String url = mUrls.get(position);
|
||||
File file = new File(FileUtil.getDownLoadPath(mContext) + FileUtil.getFileNamefromURL(url));
|
||||
File file = new File(FileUtils.getDownLoadPath(mContext) + FileUtils.getFileNamefromURL(url));
|
||||
if (file.exists()) {
|
||||
GlideLoadUtils.getInstance().glideLoad(mContext, file, holder.nv_pic, R.drawable.icon_no_homework);
|
||||
} else {
|
||||
|
||||
@@ -12,11 +12,10 @@ import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.blankj.utilcode.util.FileUtils;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.xwad.os.bean.AlarmClockData;
|
||||
import com.xwad.os.service.main.MainService;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.Utils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -290,7 +289,7 @@ public class AlarmUtils {
|
||||
return;
|
||||
}
|
||||
String fileName = url.substring(url.lastIndexOf("/") + 1, url.length());
|
||||
if (FileUtil.isVideoFile(fileName)) {
|
||||
if (FileUtils.isVideoFile(fileName)) {
|
||||
String realPath = Utils.getDownLoadPath(mContext) + fileName;
|
||||
File file = new File(realPath);
|
||||
if (!file.exists()) {
|
||||
@@ -300,7 +299,7 @@ public class AlarmUtils {
|
||||
// .ignoreFilePathOccupy()
|
||||
.create(); //启动下载}
|
||||
}
|
||||
}else if (FileUtil.isPictureFile(fileName)){
|
||||
} else if (FileUtils.isPictureFile(fileName)) {
|
||||
Glide.with(mContext).load(url);
|
||||
}
|
||||
}
|
||||
@@ -645,7 +644,7 @@ public class AlarmUtils {
|
||||
String fileName = Utils.getFileNamefromURL(url);
|
||||
File file = new File(Utils.getDownLoadPath(mContext) + fileName);
|
||||
if (file.exists() && !file.isDirectory()) {
|
||||
String fileMD5 = FileUtils.getFileMD5ToString(file);
|
||||
String fileMD5 = com.blankj.utilcode.util.FileUtils.getFileMD5ToString(file);
|
||||
Log.e("ariaDownload", "fileOnlineMD5=" + md5);
|
||||
Log.e("ariaDownload", "fileMD5=" + fileMD5);
|
||||
if (!md5.equals(fileMD5)) {
|
||||
|
||||
26
app/src/main/java/com/xwad/os/bean/AppIcon.java
Normal file
26
app/src/main/java/com/xwad/os/bean/AppIcon.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package com.xwad.os.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class AppIcon implements Serializable {
|
||||
private static final long serialVersionUID = 7467515502468519705L;
|
||||
|
||||
int id;
|
||||
String app_package;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getApp_package() {
|
||||
return app_package;
|
||||
}
|
||||
|
||||
public void setApp_package(String app_package) {
|
||||
this.app_package = app_package;
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -18,7 +17,7 @@ public class AppInfo implements Serializable {
|
||||
private long app_size;
|
||||
private String app_package;
|
||||
private String app_version_name;
|
||||
private int app_version_code;
|
||||
private long app_version_code;
|
||||
private String app_md5;
|
||||
private int app_score;
|
||||
private String app_preview1;
|
||||
@@ -90,11 +89,11 @@ public class AppInfo implements Serializable {
|
||||
this.app_version_name = app_version_name;
|
||||
}
|
||||
|
||||
public int getApp_version_code() {
|
||||
public long getApp_version_code() {
|
||||
return app_version_code;
|
||||
}
|
||||
|
||||
public void setApp_version_code(int app_version_code) {
|
||||
public void setApp_version_code(long app_version_code) {
|
||||
this.app_version_code = app_version_code;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,20 +4,31 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class AriaDownloadInfo implements Serializable {
|
||||
private static final long serialVersionUID = -2835281454196323431L;
|
||||
|
||||
@SerializedName(value = "appId", alternate = {"app_id"})
|
||||
int appId;
|
||||
@SerializedName(value = "appName", alternate = {"app_name"})
|
||||
String appName;
|
||||
@SerializedName(value = "appPackage", alternate = {"app_package", "package"})
|
||||
String appPackage;
|
||||
@SerializedName(value = "appVersionName", alternate = {"app_version_name"})
|
||||
String appVersionName;
|
||||
@SerializedName(value = "appVersionCode", alternate = {"app_version_code"})
|
||||
long appVersionCode;
|
||||
@SerializedName(value = "appUrl", alternate = {"app_url", "url"})
|
||||
String appUrl;
|
||||
@SerializedName(value = "appIcon", alternate = {"app_img"})
|
||||
String appIcon;
|
||||
@SerializedName(value = "appSize", alternate = {"app_size"})
|
||||
long appSize;
|
||||
@SerializedName(value = "appMd5", alternate = {"app_md5"})
|
||||
String appMd5;
|
||||
|
||||
public AriaDownloadInfo(int appId, String appName, String appPackage, String appVersionName, long appVersionCode, String appUrl, String appIcon, long appSize, String appMd5) {
|
||||
|
||||
@@ -76,6 +76,7 @@ public class SystemSettings implements Serializable {
|
||||
int ai_teacher;
|
||||
int photo_search_questions;
|
||||
int ai_question_test;
|
||||
int sys_voice_assistant;
|
||||
|
||||
public int getSetting_call() {
|
||||
return setting_call;
|
||||
@@ -573,6 +574,14 @@ public class SystemSettings implements Serializable {
|
||||
this.ai_question_test = ai_question_test;
|
||||
}
|
||||
|
||||
public int getSys_voice_assistant() {
|
||||
return sys_voice_assistant;
|
||||
}
|
||||
|
||||
public void setSys_voice_assistant(int sys_voice_assistant) {
|
||||
this.sys_voice_assistant = sys_voice_assistant;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xwad.os.bean;
|
||||
package com.xwad.os.bean.uiuios;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xwad.os.bean;
|
||||
package com.xwad.os.bean.uiuios;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
@@ -54,6 +54,11 @@ public class CommonConfig {
|
||||
/*是否显示返回Android按钮*/
|
||||
public static final String UIUI_RETURN_ANDROID_KEY = "iflytek_uiui_is_return_android";
|
||||
|
||||
public static final String APP_ICON_HIND_SET_KEY = "AppIconHindSet";
|
||||
|
||||
|
||||
|
||||
|
||||
/*让桌面更新定位信息*/
|
||||
public static final String IFLYTEK_UPDATE_ADDRESS_ACTION = "IFLYTEK_UPDATE_ADDRESS";
|
||||
|
||||
@@ -146,4 +151,5 @@ public class CommonConfig {
|
||||
public final static String AOLE_ACTION_APP_FORBID_ID = "aole_app_forbid_id";
|
||||
/*应用ID管控*/
|
||||
public final static String AOLE_ACTION_APP_FORBID_ARRAY = "DeselectViewArray";
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.xwad.os.bean.UserInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.databinding.FragmentAccountBinding;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.FileUtil;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
@@ -83,7 +83,7 @@ public class AccountViewModel extends BaseViewModel<FragmentAccountBinding, Frag
|
||||
Log.e("getAppInfo", "onNext: " + baseResponse);
|
||||
if (baseResponse.code == 200) {
|
||||
AppInfo appInfo = baseResponse.data;
|
||||
FileUtil.ariaDownload(getCtx(), appInfo.getApp_url(), appInfo);
|
||||
FileUtils.ariaDownload(getCtx(), appInfo.getApp_url(), appInfo);
|
||||
} else {
|
||||
Toaster.showLong("没有找到应用信息,请联系客服");
|
||||
}
|
||||
|
||||
@@ -16,9 +16,7 @@ import com.xwad.os.activity.service.ServiceActivity;
|
||||
import com.xwad.os.activity.update.UpdateActivity;
|
||||
import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.databinding.FragmentDeviceBinding;
|
||||
import com.xwad.os.manager.DeviceSNManager;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
|
||||
@@ -70,7 +68,7 @@ public class DeviceFragment extends BaseMvvmFragment<DeviceViewModel, FragmentDe
|
||||
}
|
||||
}
|
||||
});
|
||||
mViewModel.checkUpdate();
|
||||
mViewModel.checkUpdate(BuildConfig.APPLICATION_ID);
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +87,7 @@ public class DeviceFragment extends BaseMvvmFragment<DeviceViewModel, FragmentDe
|
||||
}
|
||||
|
||||
public void checkUpdate(View view) {
|
||||
mViewModel.checkUpdate();
|
||||
mViewModel.checkUpdate(BuildConfig.APPLICATION_ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,17 +4,14 @@ import android.util.Log;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.hjq.toast.Toaster;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle4.android.FragmentEvent;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.base.mvvm.BaseViewModel;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.databinding.FragmentDeviceBinding;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
@@ -34,8 +31,8 @@ public class DeviceViewModel extends BaseViewModel<FragmentDeviceBinding, Fragme
|
||||
|
||||
public MutableLiveData<AppInfo> mAppUpdateInfoData = new MutableLiveData<>();
|
||||
|
||||
public void checkUpdate() {
|
||||
NetInterfaceManager.getInstance().getUpdateObservable(BuildConfig.APPLICATION_ID)
|
||||
public void checkUpdate(String pkg) {
|
||||
NetInterfaceManager.getInstance().getUpdateObservable(pkg)
|
||||
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<AppInfo>>() {
|
||||
@Override
|
||||
@@ -66,4 +63,39 @@ public class DeviceViewModel extends BaseViewModel<FragmentDeviceBinding, Fragme
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void checkStoreUpdate(String pkg) {
|
||||
NetInterfaceManager.getInstance().getUpdateObservable(pkg)
|
||||
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse<AppInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("checkStoreUpdate", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<AppInfo> appUpdateInfoBaseResponse) {
|
||||
Log.e("checkStoreUpdate", "onNext: " + appUpdateInfoBaseResponse);
|
||||
if (appUpdateInfoBaseResponse.code == 200) {
|
||||
AppInfo appUpdateInfo = appUpdateInfoBaseResponse.data;
|
||||
if (ApkUtils.isUpdate(getCtx(), appUpdateInfo)) {
|
||||
ApkUtils.checkAppUpdate(getCtx(), appUpdateInfo);
|
||||
// Toaster.show("有新的版本需要更新");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("checkStoreUpdate", "onError: " + e.getMessage());
|
||||
// Toaster.show("网络连接失败");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("checkStoreUpdate", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -849,11 +849,17 @@ public class ControlManager {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.jxw.aizndy");
|
||||
}
|
||||
|
||||
if (setting.getAi_question_test() == 0) {
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
} else {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
}
|
||||
}
|
||||
|
||||
public void setDisallowedRunningApp() {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.jxw.aijtjs");
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.jxw.souti");
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.jxw.aizndy");
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.gson.GsonUtils;
|
||||
import com.xwad.os.receiver.AoleDeviceAdminReceiver;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
import com.xwad.os.utils.JgyUtils;
|
||||
import com.xwad.os.utils.Utils;
|
||||
|
||||
@@ -51,7 +52,8 @@ import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class AdminManager {
|
||||
private static final String TAG = "AdminManager";
|
||||
@@ -361,21 +363,40 @@ public class AdminManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void setDisallowedRunningApp(List<String> packageNames) {
|
||||
if (packageNames == null || packageNames.size() == 0) return;
|
||||
Log.e(TAG, "setDisallowedRunningApp: packageNames = " + packageNames);
|
||||
try {
|
||||
mDeviceApplicationManager.addDisallowedRunningApp(mAdminName, packageNames);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "setDisallowedRunningApp: " + e.getMessage());
|
||||
}
|
||||
Log.e(TAG, "setDisallowedRunningApp: getDisallowedRunningApp = " + getDisallowedRunningApp());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加阻止某应用启动运行名单
|
||||
*
|
||||
* @param packageNames
|
||||
*/
|
||||
public void addDisallowedRunningApp(List<String> packageNames) {
|
||||
if (packageNames == null || packageNames.size() == 0) return;
|
||||
if (packageNames == null || packageNames.isEmpty()) return;
|
||||
Log.e(TAG, "addDisallowedRunningApp: packageNames = " + packageNames);
|
||||
List<String> packageList = getDisallowedRunningApp();
|
||||
Log.e(TAG, "addDisallowedRunningApp: getDisallowedRunningApp = " + packageList);
|
||||
// if (packageList != null && packageList.size() != 0) {
|
||||
// mDeviceApplicationManager.removeDisallowedRunningApp(mAdminName, packageList);
|
||||
// }
|
||||
if (packageList == null) {
|
||||
packageList = new ArrayList<>();
|
||||
}
|
||||
packageList.addAll(packageNames);
|
||||
packageList = packageList.stream().filter(new Predicate<String>() {
|
||||
@Override
|
||||
public boolean test(String s) {
|
||||
return ApkUtils.isAvailable(mContext, s);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
try {
|
||||
mDeviceApplicationManager.addDisallowedRunningApp(mAdminName, packageNames);
|
||||
mDeviceApplicationManager.addDisallowedRunningApp(mAdminName, packageList);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "addDisallowedRunningApp: " + e.getMessage());
|
||||
}
|
||||
@@ -390,6 +411,10 @@ public class AdminManager {
|
||||
*/
|
||||
public void addDisallowedRunningApp(String pkg) {
|
||||
Log.e(TAG, "addDisallowedRunningApp: " + pkg);
|
||||
// if (ApkUtils.isSystemApp(mContext, pkg)) {
|
||||
// Log.e(TAG, "addDisallowedRunningApp: can not add system app to list");
|
||||
// return;
|
||||
// }
|
||||
List<String> packageList = getDisallowedRunningApp();
|
||||
// List<String> packageList = new ArrayList<>();
|
||||
Log.e(TAG, "addDisallowedRunningApp: packageList = " + packageList);
|
||||
@@ -409,8 +434,19 @@ public class AdminManager {
|
||||
* @param packageNames
|
||||
*/
|
||||
public void removeDisallowedRunningApp(List<String> packageNames) {
|
||||
Log.e(TAG, "removeDisallowedRunningApp: " + packageNames);
|
||||
if (packageNames == null || packageNames.size() == 0) return;
|
||||
mDeviceApplicationManager.removeDisallowedRunningApp(mAdminName, packageNames);
|
||||
List<String> pkgs = packageNames.stream().filter(new Predicate<String>() {
|
||||
@Override
|
||||
public boolean test(String s) {
|
||||
return ApkUtils.isAvailable(mContext, s);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
try {
|
||||
mDeviceApplicationManager.removeDisallowedRunningApp(mAdminName, pkgs);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "removeDisallowedRunningApp: Exception " + e.getMessage());
|
||||
}
|
||||
Log.e(TAG, "removeDisallowedRunningApp: getDisallowedRunningApp = " + getDisallowedRunningApp());
|
||||
}
|
||||
|
||||
@@ -699,8 +735,7 @@ public class AdminManager {
|
||||
private Set<String> defaultAllowInstallPackages = new HashSet<String>() {{
|
||||
this.add(BuildConfig.APPLICATION_ID);
|
||||
this.add("com.xwad.store");
|
||||
this.add("com.uiui.aios");
|
||||
this.add("com.uiui.appstore");
|
||||
this.add("com.uiui.zyappstore");
|
||||
}};
|
||||
|
||||
public void setInstallPackageDefaultTrustList(List<String> packages) {
|
||||
@@ -1917,11 +1952,11 @@ public class AdminManager {
|
||||
Log.e(TAG, "setYoyoDisabled: disable = " + disable);
|
||||
try {
|
||||
if (disable) {
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.servicecenter");
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
addDisallowedRunningApp("com.hihonor.servicecenter");
|
||||
addDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
} else {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.hihonor.servicecenter");
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
removeDisallowedRunningApp("com.hihonor.servicecenter");
|
||||
removeDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
}
|
||||
return mDeviceRestrictionManager.setVoiceAssistantButtonDisabled(mAdminName, disable);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -24,8 +24,8 @@ import com.trello.rxlifecycle4.android.FragmentEvent;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.alarm.AlarmUtils;
|
||||
import com.xwad.os.bean.AlarmClockData;
|
||||
import com.xwad.os.bean.AppIcon;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.AppUploadInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.CodeBean;
|
||||
@@ -46,6 +46,7 @@ import com.xwad.os.bean.UserAvatarInfo;
|
||||
import com.xwad.os.bean.UserInfo;
|
||||
import com.xwad.os.bean.VipInfo;
|
||||
import com.xwad.os.bean.WhoisBean;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.disklrucache.CacheHelper;
|
||||
import com.xwad.os.gson.GsonUtils;
|
||||
@@ -55,6 +56,7 @@ import com.xwad.os.network.api.AlarmClockApi;
|
||||
import com.xwad.os.network.api.AppApi;
|
||||
import com.xwad.os.network.api.AppUsageRecordApi;
|
||||
import com.xwad.os.network.api.FilesApi;
|
||||
import com.xwad.os.network.api.GetAppIconApi;
|
||||
import com.xwad.os.network.api.GetWhoisApi;
|
||||
import com.xwad.os.network.api.HomeworkApi;
|
||||
import com.xwad.os.network.api.LoginApi;
|
||||
@@ -67,7 +69,6 @@ import com.xwad.os.network.api.UserApi;
|
||||
import com.xwad.os.network.api.jxw.JxwApi;
|
||||
import com.xwad.os.network.api.uiuios.CheckUpdateApi;
|
||||
import com.xwad.os.network.interceptor.RepeatRequestInterceptor;
|
||||
import com.xwad.os.service.ManagerService;
|
||||
import com.xwad.os.utils.ActivationUtil;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
import com.xwad.os.utils.BitmapUtils;
|
||||
@@ -555,7 +556,12 @@ public class NetInterfaceManager {
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
|
||||
public Observable<BaseResponse<List<AppIcon>>> getAppIconObservable() {
|
||||
return mRetrofit.create(GetAppIconApi.class)
|
||||
.getAppIcon(Utils.getSerial())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
public Observable<BaseResponse> getOauthTokenObservable() {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
@@ -1050,7 +1056,7 @@ public class NetInterfaceManager {
|
||||
softwareJson.addProperty("info_version", ApkUtils.getAPPVersionName(mContext, JgyUtils.PACKAGE_DEVICEINFO));
|
||||
softwareJson.addProperty("browser_version", ApkUtils.getAPPVersionName(mContext, JgyUtils.PACKAGE_BROWSER));
|
||||
softwareJson.addProperty("notice_version", ApkUtils.getAPPVersionName(mContext, "com.uiui.info"));
|
||||
softwareJson.addProperty("desktop_version", ApkUtils.getAPPVersionName(mContext,BuildConfig.APPLICATION_ID));
|
||||
softwareJson.addProperty("desktop_version", ApkUtils.getAPPVersionName(mContext, BuildConfig.APPLICATION_ID));
|
||||
|
||||
softwareJson.addProperty("appstore_install_time", ApkUtils.getAppLastUpdateTime(mContext, JgyUtils.PACKAGE_APPSTORE));
|
||||
softwareJson.addProperty("info_install_time", ApkUtils.getAppLastUpdateTime(mContext, JgyUtils.PACKAGE_DEVICEINFO));
|
||||
@@ -1141,6 +1147,25 @@ public class NetInterfaceManager {
|
||||
this.add("com.android.documentsui");
|
||||
this.add("org.chromium.browser");
|
||||
|
||||
this.add("com.hihonor.notepad");
|
||||
this.add("com.hihonor.devicefinder");
|
||||
this.add("com.hihonor.email");
|
||||
this.add("com.hihonor.kidsmode");
|
||||
this.add("com.hihonor.servicecenter");
|
||||
this.add("com.hihonor.parentcontrol");
|
||||
this.add("com.hihonor.baidu.browser");
|
||||
this.add("cn.honor.qinxuan");
|
||||
this.add("com.hihonor.vmall");
|
||||
this.add("com.hihonor.search");
|
||||
this.add("com.hihonor.hnofficelauncher");
|
||||
this.add("com.hihonor.youku.video");
|
||||
this.add("com.hihonor.quickgamecenter");
|
||||
this.add("com.hihonor.edulauncher");
|
||||
this.add("com.hihonor.cloudmusic");
|
||||
this.add("com.hihonor.appmarket");
|
||||
this.add("com.hihonor.gamecenter");
|
||||
this.add("com.hihonor.dz.reader");
|
||||
this.add("com.hihonor.magichome");
|
||||
}};
|
||||
|
||||
public static long getPackageSize(Context context, String filePath) {
|
||||
@@ -1164,11 +1189,11 @@ public class NetInterfaceManager {
|
||||
List<ResolveInfo> appsWithLauncher = pm.queryIntentActivities(intent, 0);
|
||||
Log.e("SendAppInstallInfo", "appsWithLauncher: " + appsWithLauncher);
|
||||
List<String> pkgs = new ArrayList<>();
|
||||
for (PackageInfo packageInfo : installedPackages) {
|
||||
if (pm.getApplicationEnabledSetting(packageInfo.packageName) == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
|
||||
pkgs.add(packageInfo.packageName);
|
||||
}
|
||||
}
|
||||
// for (PackageInfo packageInfo : installedPackages) {
|
||||
// if (pm.getApplicationEnabledSetting(packageInfo.packageName) == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
|
||||
// pkgs.add(packageInfo.packageName);
|
||||
// }
|
||||
// }
|
||||
for (ResolveInfo info : appsWithLauncher) {
|
||||
pkgs.add(info.activityInfo.packageName);
|
||||
}
|
||||
@@ -1468,7 +1493,7 @@ public class NetInterfaceManager {
|
||||
mCacheHelper.put(UrlAddress.LOCK_SCREEN_PWD, "");
|
||||
} else {
|
||||
mCacheHelper.put(UrlAddress.LOCK_SCREEN_PWD, GsonUtils.toJSONString(screenPassword));
|
||||
mMMKV.encode(ManagerService.LOCK_SCREEN_PASSWORD, screenPassword.getPwd());
|
||||
mMMKV.encode(CommonConfig.LOCK_SCREEN_PASSWORD, screenPassword.getPwd());
|
||||
}
|
||||
} else {
|
||||
mCacheHelper.put(UrlAddress.LOCK_SCREEN_PWD, "");
|
||||
@@ -1526,4 +1551,67 @@ public class NetInterfaceManager {
|
||||
});
|
||||
}
|
||||
|
||||
public interface AppIconCallback {
|
||||
void onComplete();
|
||||
}
|
||||
|
||||
public void getAppIcon() {
|
||||
getAppIconObservable()
|
||||
.subscribe(getAppIconObserver(null));
|
||||
}
|
||||
|
||||
public void getAppIcon(AppIconCallback callback) {
|
||||
getAppIconObservable()
|
||||
.subscribe(getAppIconObserver(callback));
|
||||
}
|
||||
|
||||
public void getAppIcon(BehaviorSubject<ActivityEvent> lifecycle, AppIconCallback callback) {
|
||||
getAppIconObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(getAppIconObserver(callback));
|
||||
}
|
||||
|
||||
|
||||
public Observer<BaseResponse<List<AppIcon>>> getAppIconObserver(AppIconCallback callback) {
|
||||
return new Observer<BaseResponse<List<AppIcon>>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAppIcon", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<List<AppIcon>> baseResponse) {
|
||||
Log.e("getAppIcon", "onNext: " + baseResponse);
|
||||
if (baseResponse.code == 200) {
|
||||
List<AppIcon> appIconList = baseResponse.data;
|
||||
Set<String> pkgList = appIconList.stream().map(new java.util.function.Function<AppIcon, String>() {
|
||||
@Override
|
||||
public String apply(AppIcon appIcon) {
|
||||
return appIcon.getApp_package();
|
||||
}
|
||||
}).collect(Collectors.toSet());
|
||||
Set<String> stringSet = mMMKV.decodeStringSet(CommonConfig.APP_ICON_HIND_SET_KEY, new HashSet<>());
|
||||
AdminManager.getInstance().removeDisallowedRunningApp(new ArrayList<>(stringSet));
|
||||
mMMKV.encode(CommonConfig.APP_ICON_HIND_SET_KEY, pkgList);
|
||||
AdminManager.getInstance().addDisallowedRunningApp(new ArrayList<>(pkgList));
|
||||
} else {
|
||||
Set<String> stringSet = mMMKV.decodeStringSet(CommonConfig.APP_ICON_HIND_SET_KEY, new HashSet<>());
|
||||
AdminManager.getInstance().removeDisallowedRunningApp(new ArrayList<>(stringSet));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("getAppIcon", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("getAppIcon", "onComplete: ");
|
||||
if (callback != null)
|
||||
callback.onComplete();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,6 +107,9 @@ public class UrlAddress {
|
||||
/*获取系统设置*/
|
||||
public final static String GET_SETTINGS = "control/getSetting";
|
||||
|
||||
/*获取禁用包名*/
|
||||
public static final String GET_APP_ICON = "getAppIcon";
|
||||
|
||||
public static final String UIUIOS_ROOT_URL = "https://map.uiuios.com/android/";
|
||||
/*获取应用更新*/
|
||||
@Deprecated
|
||||
|
||||
18
app/src/main/java/com/xwad/os/network/api/GetAppIconApi.java
Normal file
18
app/src/main/java/com/xwad/os/network/api/GetAppIconApi.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.xwad.os.network.api;
|
||||
|
||||
import com.xwad.os.bean.AppIcon;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface GetAppIconApi {
|
||||
@GET(UrlAddress.GET_APP_ICON)
|
||||
Observable<BaseResponse<List<AppIcon>>> getAppIcon(
|
||||
@Query("sn") String sn
|
||||
);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.xwad.os.network.api.uiuios;
|
||||
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
|
||||
@@ -4,11 +4,17 @@ import android.annotation.SuppressLint;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.PowerManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.hjq.toast.Toaster;
|
||||
@@ -29,6 +35,7 @@ import com.xwad.os.service.ManagerService;
|
||||
import com.xwad.os.service.main.MainService;
|
||||
import com.xwad.os.utils.ApkUtils;
|
||||
import com.xwad.os.utils.BitmapUtils;
|
||||
import com.xwad.os.utils.FileUtils;
|
||||
import com.xwad.os.utils.JgyUtils;
|
||||
import com.xwad.os.utils.ServiceAliveUtils;
|
||||
import com.xwad.os.utils.Utils;
|
||||
@@ -281,6 +288,8 @@ public class PushManager {
|
||||
private static final String PHOTO_SEARCH_QUESTIONS = "124";
|
||||
/*AI答疑测试*/
|
||||
private static final String AI_QA_TEST = "125";
|
||||
/*语音助手*/
|
||||
private static final String Voice_assistant = "126";
|
||||
|
||||
|
||||
public void setPushContent(String title, String extras) {
|
||||
@@ -297,10 +306,27 @@ public class PushManager {
|
||||
Toaster.debugShow("收到推送消息: USB连接模式管控");
|
||||
setUsbStatus(extras);
|
||||
break;
|
||||
case FORCE_INSTALLAPK:
|
||||
Toaster.debugShow("收到推送消息: 强制安装应用");
|
||||
// NetInterfaceManager.getInstance().getAllappPackage();
|
||||
// NetInterfaceManager.getInstance().getForceInstall();
|
||||
intallApk(extras);
|
||||
break;
|
||||
case FORCE_UNINSTALLAPK:
|
||||
Toaster.debugShow("收到推送消息: 强制卸载应用");
|
||||
unintallApk(extras);
|
||||
break;
|
||||
case REBOOT_DEVICES:
|
||||
Toaster.debugShow("收到推送消息: 重启");
|
||||
AdminManager.getInstance().rebootDevice();
|
||||
break;
|
||||
case FORCE_KILL:
|
||||
Toaster.debugShow("收到推送消息: 强制停止应用");
|
||||
JsonObject killJSONObject = GsonUtils.getJsonObject(extras);
|
||||
String app_package = killJSONObject.get("app_package").getAsString();
|
||||
AdminManager.getInstance().killApplicationProcess(app_package);
|
||||
Log.e(TAG, extras);
|
||||
break;
|
||||
case LOCK_SCREEN:
|
||||
Toaster.debugShow("收到推送消息: 锁屏");
|
||||
setLockScreen(extras);
|
||||
@@ -311,10 +337,18 @@ public class PushManager {
|
||||
screenshot(extras);
|
||||
Log.e(TAG, extras);
|
||||
break;
|
||||
case CLEAN_APP_CACHE:
|
||||
Toaster.debugShow("收到推送消息: 清除应用缓存");
|
||||
cleanAppCache(extras);
|
||||
break;
|
||||
case ALARM_CLOCK:
|
||||
Toaster.debugShow("收到推送消息: 设置闹钟");
|
||||
sendAlarmClock(extras);
|
||||
break;
|
||||
case HIDE_APPICON:
|
||||
new Handler(Looper.getMainLooper()).postDelayed(() -> NetInterfaceManager.getInstance().getAppIcon(() -> {
|
||||
}), 2000);
|
||||
break;
|
||||
case KILL_APP:
|
||||
Toaster.debugShow("收到推送消息: 内存优化");
|
||||
killBackgroundApp();
|
||||
@@ -336,6 +370,9 @@ public class PushManager {
|
||||
case GO_ANDROID:
|
||||
setReturnAndrdoid(extras);
|
||||
break;
|
||||
case UPGRADE_PASSWD:
|
||||
NetInterfaceManager.getInstance().getLockScreenPwd();
|
||||
break;
|
||||
case BLUETOOTH_TRANSFER:
|
||||
setBluetoothTransfer(extras);
|
||||
break;
|
||||
@@ -373,10 +410,28 @@ public class PushManager {
|
||||
case AI_QA_TEST:
|
||||
setAiQuestionTest(extras);
|
||||
break;
|
||||
case Voice_assistant:
|
||||
setVoiceAssistant(extras);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
private void setVoiceAssistant(String extras) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
|
||||
JsonElement jsonElement = jsonObject.get("sys_voice_assistant");
|
||||
if (jsonElement == null || jsonElement.isJsonNull()) {
|
||||
Log.e(TAG, "setVoiceAssistant: jsonElement is null");
|
||||
return;
|
||||
}
|
||||
int sys_voice_assistant = jsonElement.getAsInt();
|
||||
if (sys_voice_assistant == 0) {
|
||||
AdminManager.getInstance().addDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
} else {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp("com.hihonor.magicvoice");
|
||||
}
|
||||
}
|
||||
|
||||
private void setAiTeacher(String extras) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
|
||||
JsonElement jsonElement = jsonObject.get("ai_teacher");
|
||||
@@ -595,6 +650,61 @@ public class PushManager {
|
||||
}
|
||||
}
|
||||
|
||||
//静默安装应用,使用okgo,断网会出现问题,等待修改使用aria
|
||||
private void intallApk(String jsonString) {
|
||||
if (TextUtils.isEmpty(jsonString)) {
|
||||
return;
|
||||
}
|
||||
JsonObject extra = GsonUtils.getJsonObject(jsonString);
|
||||
String packages = extra.get("package").getAsString();
|
||||
long app_version_code = extra.get("app_version_code").getAsLong();
|
||||
Toaster.debugShow("收到应用安装消息:包名" + packages);
|
||||
String url = extra.get("url").getAsString();
|
||||
if (TextUtils.isEmpty(url)) {
|
||||
return;
|
||||
}
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
PackageInfo packageInfo = null;
|
||||
try {
|
||||
packageInfo = pm.getPackageInfo(packages, 0);
|
||||
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (packageInfo != null) {
|
||||
long appVersionCode;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
appVersionCode = packageInfo.getLongVersionCode();
|
||||
} else {
|
||||
appVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
if (app_version_code > appVersionCode) {
|
||||
FileUtils.ariaDownload(mContext, url, extra);
|
||||
} else {
|
||||
Log.e(TAG, "intallApk: " + packages + " is up to date");
|
||||
}
|
||||
} else {
|
||||
FileUtils.ariaDownload(mContext, url, extra);
|
||||
}
|
||||
Aria.download(this).resumeAllTask();
|
||||
}
|
||||
|
||||
private void unintallApk(String jsonString) {
|
||||
JsonObject object = GsonUtils.getJsonObject(jsonString);
|
||||
String packageName = object.get("app_package").getAsString();
|
||||
// 台电设备不删除无法静默卸载
|
||||
// removeForceSettings(packageName);
|
||||
Toaster.debugShow("收到应用卸载消息:包名" + packageName);
|
||||
if (!"".equals(packageName) && !packageName.equals(mContext.getPackageName())) {
|
||||
if (!ApkUtils.isAvailable(mContext, packageName)) {
|
||||
// NetInterfaceManager.getInstance().setAppuninstallInfo(sn_id, packageName);
|
||||
} else {
|
||||
AdminManager.getInstance().removeDisallowedRunningApp(packageName);
|
||||
AdminManager.getInstance().uninstallPackage(packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void startHome() {
|
||||
Intent intent = new Intent(mContext, HomeActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
@@ -711,6 +821,21 @@ public class PushManager {
|
||||
});
|
||||
}
|
||||
|
||||
private void cleanAppCache(String jsonString) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(jsonString);
|
||||
String pkg = jsonObject.get("package").getAsString();
|
||||
if (TextUtils.isEmpty(pkg)) {
|
||||
Log.e(TAG, "cleanAppCache: pkg is null");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
AdminManager.getInstance().clearPackageData(pkg);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e(TAG, "cleanAppCache: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void sendZyosRefreshIntent() {
|
||||
Intent intent = new Intent(UserFragment.ACTION_REFRESH_BINDING_STATUS);
|
||||
intent.setPackage("com.uiui.zyos");
|
||||
|
||||
@@ -11,14 +11,28 @@ import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.fragment.user.UserFragment;
|
||||
import com.xwad.os.jxw.JxwPackageConfig;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.service.main.MainService;
|
||||
import com.xwad.os.utils.ActivationUtil;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
public class ApkInstallReceiver extends BroadcastReceiver {
|
||||
|
||||
private static final String TAG = "APKinstallReceiver";
|
||||
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||||
|
||||
private static NewAppListener newAppListener;
|
||||
|
||||
static {
|
||||
sendAppInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(final Context context, Intent intent) {
|
||||
// an Intent broadcast.
|
||||
@@ -57,4 +71,41 @@ public class ApkInstallReceiver extends BroadcastReceiver {
|
||||
|
||||
}
|
||||
|
||||
public interface NewAppListener {
|
||||
void setNewAppListener(String packageName);
|
||||
}
|
||||
|
||||
private static void sendAppInfo() {
|
||||
MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||||
Observable.create((ObservableEmitter<String> emitter) -> newAppListener = emitter::onNext)
|
||||
.throttleLast(1, TimeUnit.MINUTES)
|
||||
.subscribe(new Observer<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
Log.e("sendAppInfo", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
Log.e("sendAppInfo", "onNext: " + s);
|
||||
int isLogined = mMMKV.decodeInt(CommonConfig.isLogined, 0);
|
||||
if (isLogined != 1) return;
|
||||
NetInterfaceManager.getInstance().updateAdminInfo();
|
||||
NetInterfaceManager.getInstance().SendAppInstallInfo();
|
||||
// NetInterfaceManager.getInstance().getForceInstall();
|
||||
// NetInterfaceManager.getInstance().getAllappPackage(null);
|
||||
NetInterfaceManager.getInstance().getAppIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
Log.e("sendAppInfo", "onError: " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("sendAppInfo", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ import com.blankj.utilcode.util.NetworkUtils;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.tuo.customview.VerificationCodeView;
|
||||
import com.uiui.zy.KeepAliveConnection;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.KeepAliveConnection;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
@@ -69,8 +69,6 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta
|
||||
public static final String ACTION_LOCK = BuildConfig.APPLICATION_ID + "_LockScreenReceiver_lockscreen";
|
||||
public static final String ACTION_UNLOCK = BuildConfig.APPLICATION_ID + "_LockScreenReceiver_unlockscreen";
|
||||
public static final String ACTION_UPDATE = BuildConfig.APPLICATION_ID + "_TimeChangedReceiver_update";
|
||||
public static final String LOCK_SCREEN_PASSWORD = "Iflytek_lockScreenPasswordKey";
|
||||
public static final String DEFAULT_PASSWORD = "072814";
|
||||
|
||||
private WindowManager windowManager;
|
||||
private View topView;
|
||||
@@ -467,10 +465,10 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta
|
||||
return;
|
||||
}
|
||||
Log.e(TAG, "inputComplete: " + content);
|
||||
String password = mMMKV.decodeString(LOCK_SCREEN_PASSWORD, DEFAULT_PASSWORD);
|
||||
String password = mMMKV.decodeString(CommonConfig.LOCK_SCREEN_PASSWORD, CommonConfig.DEFAULT_PASSWORD);
|
||||
if (password.equals(content)) {
|
||||
hide();
|
||||
} else if (DEFAULT_PASSWORD.equals(content)) {
|
||||
} else if (CommonConfig.DEFAULT_PASSWORD.equals(content)) {
|
||||
hide();
|
||||
} else {
|
||||
postDelayed(codeView, tv_hint);
|
||||
|
||||
51
app/src/main/java/com/xwad/os/service/RemoteService.java
Normal file
51
app/src/main/java/com/xwad/os/service/RemoteService.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package com.xwad.os.service;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Intent;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.xwad.os.IGetInfoInterface;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.utils.Utils;
|
||||
|
||||
public class RemoteService extends Service {
|
||||
private static final String TAG = "RemoteService";
|
||||
|
||||
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||||
|
||||
public RemoteService() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
Log.e(TAG, "onBind: ");
|
||||
return mBinde;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
Log.e(TAG, "onCreate: ");
|
||||
super.onCreate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Log.e(TAG, "onStartCommand: ");
|
||||
return super.onStartCommand(intent, flags, startId);
|
||||
}
|
||||
|
||||
private IBinder mBinde = new IGetInfoInterface.Stub() {
|
||||
@Override
|
||||
public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString) throws RemoteException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerial() throws RemoteException {
|
||||
return Utils.getSerial();
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -153,6 +153,7 @@ public class SocketService extends Service implements NetworkUtils.OnNetworkStat
|
||||
initOnlineSocketClient();
|
||||
initSsoSocketClient();
|
||||
initPush();
|
||||
NetInterfaceManager.getInstance().getSystemSettings();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.google.gson.JsonObject;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
import com.xwad.os.bean.AlarmClockData;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
@@ -109,7 +108,8 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void updateDeviceInfo() {
|
||||
|
||||
NetInterfaceManager.getInstance().updateAdminInfo();
|
||||
NetInterfaceManager.getInstance().SendAppInstallInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -129,7 +129,12 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void getAppIcon() {
|
||||
|
||||
NetInterfaceManager.getInstance().getAppIcon(getLifecycle(), new NetInterfaceManager.AppIconCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("getAppIcon", "onComplete: ");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -253,7 +258,12 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void getLockScreenPwd() {
|
||||
|
||||
NetInterfaceManager.getInstance().getLockScreenPwd(lifecycle, new NetInterfaceManager.OnCompleteCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.setLockScreenPwd();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.blankj.utilcode.util.NetworkUtils;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.activity.NoticeActivity;
|
||||
import com.xwad.os.activity.main.MainActivity;
|
||||
import com.xwad.os.activity.home.HomeActivity;
|
||||
import com.xwad.os.alarm.AlarmUtils;
|
||||
import com.xwad.os.base.rx.BaseRxService;
|
||||
import com.xwad.os.bean.AlarmClockData;
|
||||
@@ -28,6 +28,7 @@ import com.xwad.os.bean.BaseResponse;
|
||||
import com.xwad.os.bean.IsActivationBean;
|
||||
import com.xwad.os.bean.SnInfo;
|
||||
import com.xwad.os.config.CommonConfig;
|
||||
import com.xwad.os.network.NetInterfaceManager;
|
||||
import com.xwad.os.service.SocketService;
|
||||
|
||||
import java.util.Calendar;
|
||||
@@ -74,11 +75,6 @@ public class MainService extends BaseRxService implements MainSContact.MainSView
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setLifecycle(getLifecycleSubject());
|
||||
|
||||
mPresenter.getCloudLessonSettings();
|
||||
mPresenter.getScreenLock();
|
||||
mPresenter.getAdminApp();
|
||||
mPresenter.getSystemSettings();
|
||||
|
||||
registerReceivers();
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
startJxwLauncher();
|
||||
@@ -92,11 +88,37 @@ public class MainService extends BaseRxService implements MainSContact.MainSView
|
||||
|
||||
Log.e(TAG, "setDefault: startServices time = " + (System.currentTimeMillis() - time) + "ms");
|
||||
|
||||
getSystemSettings();
|
||||
|
||||
}
|
||||
|
||||
private void getSystemSettings() {
|
||||
mPresenter.getCloudLessonSettings();
|
||||
mPresenter.updateDeviceInfo();
|
||||
mPresenter.getAppIcon();
|
||||
mPresenter.getScreenLock();
|
||||
mPresenter.getAdminApp();
|
||||
mPresenter.getSystemSettings();
|
||||
mPresenter.getLockScreenPwd();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Log.e(TAG, "onStartCommand: ");
|
||||
if (intent != null) {
|
||||
String action = intent.getAction();
|
||||
if (!TextUtils.isEmpty(action)) {
|
||||
Log.e(TAG, "onStartCommand: action = " + action);
|
||||
switch (action) {
|
||||
case SocketService.LOGIN_SUCCESSFUL:
|
||||
getSystemSettings();
|
||||
NetInterfaceManager.getInstance().getSystemSettings();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
@@ -129,7 +151,7 @@ public class MainService extends BaseRxService implements MainSContact.MainSView
|
||||
private int NotificationID = 1;
|
||||
|
||||
private void sendSimpleNotification() {
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
Intent intent = new Intent(this, HomeActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
|
||||
|
||||
@@ -24,9 +24,8 @@ import com.hjq.toast.Toaster;
|
||||
import com.xwad.os.BuildConfig;
|
||||
import com.xwad.os.R;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.DesktopIcon;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.receiver.InstallResultReceiver;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
@@ -896,10 +895,10 @@ public class ApkUtils {
|
||||
installApkFile(context, apk);
|
||||
}
|
||||
|
||||
public static void checkAppUpdate(Context context, AppInfo appUpdateInfo) {
|
||||
String packageName = appUpdateInfo.getApp_package();
|
||||
long versionCode = appUpdateInfo.getApp_version_code();
|
||||
String url = appUpdateInfo.getApp_url();
|
||||
public static void checkAppUpdate(Context context, AppInfo appInfo) {
|
||||
String packageName = appInfo.getApp_package();
|
||||
long versionCode = appInfo.getApp_version_code();
|
||||
String url = appInfo.getApp_url();
|
||||
PackageInfo packageInfo = null;
|
||||
try {
|
||||
packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
|
||||
@@ -907,7 +906,7 @@ public class ApkUtils {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (packageInfo == null) {
|
||||
FileUtil.ariaDownload(context, url, appUpdateInfo);
|
||||
FileUtils.ariaDownload(context, url, appInfo);
|
||||
} else {
|
||||
long appVersionCode;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
@@ -916,7 +915,7 @@ public class ApkUtils {
|
||||
appVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
if (appVersionCode < versionCode) {
|
||||
FileUtil.ariaDownload(context, url, appUpdateInfo);
|
||||
FileUtils.ariaDownload(context, url, appInfo);
|
||||
} else {
|
||||
Log.e(TAG, "checkUpdate: " + packageName + "\t已经是最新版");
|
||||
}
|
||||
@@ -934,7 +933,7 @@ public class ApkUtils {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (packageInfo == null) {
|
||||
FileUtil.ariaDownload(context, url, appUpdateInfo);
|
||||
FileUtils.ariaDownload(context, url, appUpdateInfo);
|
||||
} else {
|
||||
long appVersionCode;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
@@ -943,7 +942,7 @@ public class ApkUtils {
|
||||
appVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
if (appVersionCode < versionCode) {
|
||||
FileUtil.ariaDownload(context, url, appUpdateInfo);
|
||||
FileUtils.ariaDownload(context, url, appUpdateInfo);
|
||||
} else {
|
||||
Log.e(TAG, "checkUpdate: " + packageName + "\t已经是最新版");
|
||||
}
|
||||
|
||||
@@ -2,10 +2,12 @@ package com.xwad.os.utils;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.text.TextUtils;
|
||||
@@ -14,21 +16,25 @@ import android.util.Log;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.xwad.os.bean.AppInfo;
|
||||
import com.xwad.os.bean.AppUpdateInfo;
|
||||
import com.xwad.os.bean.AriaDownloadInfo;
|
||||
import com.xwad.os.bean.HomeworkBean;
|
||||
import com.xwad.os.bean.uiuios.AppUpdateInfo;
|
||||
import com.xwad.os.gson.GsonUtils;
|
||||
import com.xwad.os.mdm.AdminManager;
|
||||
import com.xwad.os.service.DownloadService;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class FileUtil {
|
||||
public class FileUtils {
|
||||
private static final String TAG = "FileUtil";
|
||||
|
||||
public static String getFileType(String url) {
|
||||
@@ -245,6 +251,15 @@ public class FileUtil {
|
||||
ariaDownload(context, url, ariaDownloadInfo);
|
||||
}
|
||||
|
||||
public static void ariaDownload(Context context, String url, JsonObject jsonObject) {
|
||||
Log.e(TAG, "ariaDownload: " + jsonObject);
|
||||
Gson gson = new Gson();
|
||||
Type type = new TypeToken<AriaDownloadInfo>() {
|
||||
}.getType();
|
||||
AriaDownloadInfo ariaDownloadInfo = gson.fromJson(jsonObject, type);
|
||||
ariaDownload(context, url, ariaDownloadInfo);
|
||||
}
|
||||
|
||||
public static void ariaDownload(Context context, String url, AriaDownloadInfo ariaDownloadInfo) {
|
||||
Log.e(TAG, "ariaDownload: " + ariaDownloadInfo);
|
||||
String fileName = getFileNamefromURL(url);
|
||||
@@ -273,6 +288,12 @@ public class FileUtil {
|
||||
.setExtendField(GsonUtils.toJSONString(ariaDownloadInfo))
|
||||
.create(); //启动下载}
|
||||
}
|
||||
Intent intent = new Intent(context, DownloadService.class);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
context.startForegroundService(intent);
|
||||
} else {
|
||||
context.startService(intent);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ariaDownloadTestPaper(Context context, String url, HomeworkBean homeworkBean) {
|
||||
@@ -912,7 +912,7 @@ public class OpenApkUtils {
|
||||
Log.e("getAppInfo", "onNext: " + baseResponse);
|
||||
if (baseResponse.code == 200) {
|
||||
AppInfo appInfo = baseResponse.data;
|
||||
FileUtil.ariaDownload(mContext, appInfo.getApp_url(), appInfo);
|
||||
FileUtils.ariaDownload(mContext, appInfo.getApp_url(), appInfo);
|
||||
} else {
|
||||
Toaster.showLong("没有找到应用信息,请联系客服");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user