version:4.0

fix:修复日志上传错误
update:正在运行的app显示奥乐云系列应用
This commit is contained in:
2022-04-13 10:37:36 +08:00
parent 297f33bf2d
commit 0a75344b61
10 changed files with 98 additions and 32 deletions

View File

@@ -33,6 +33,7 @@ import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.service.LogcatService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ForegroundAppUtil;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.ServiceAliveUtils;
@@ -85,6 +86,8 @@ public class SplashActivity extends AppCompatActivity {
private void initView() {
if (BuildConfig.DEBUG) {
// String jsonString = ApkUtils.getRunningAppInfo(this);
// Log.e(TAG, "initView: " + jsonString);
ApkUtils.showAllAPP(this);
// JGYUtils.getInstance().cleanBackgroundMemory();
// NetInterfaceManager.getInstance().uploadLogFile();

View File

@@ -2,10 +2,14 @@ package com.aoleyun.sn.activity.main;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.os.SystemClock;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
@@ -22,6 +26,7 @@ import com.aoleyun.sn.activity.requestlog.RequestLogActivity;
import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils;
@@ -50,6 +55,8 @@ import io.reactivex.rxjava3.disposables.Disposable;
public class MainActivity extends BaseActivity implements MainAContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = MainActivity.class.getSimpleName();
public static final String UPDATE_LOCKED_STATUS = "UPDATE_LOCKED_STATUS";
@BindView(R.id.imageView)
ImageView head;
@BindView(R.id.tv_devsn)
@@ -244,6 +251,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
public void initData() {
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
startService(new Intent(MainActivity.this, MainService.class));
// registerUpdateReceiver();
mMainAPresenter.getLockedState();
}
@@ -406,6 +414,9 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
JGYUtils.startServices(MainActivity.this);
NetworkUtils.unregisterNetworkStatusChangedListener(this);
mMainAPresenter.detachView();
if (mUpdateReceiver != null) {
unregisterReceiver(mUpdateReceiver);
}
}
@Override
@@ -427,4 +438,37 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
finish();
}
}
UpdateReceiver mUpdateReceiver;
private void registerUpdateReceiver() {
if (mUpdateReceiver == null) {
mUpdateReceiver = new UpdateReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(UPDATE_LOCKED_STATUS);
}
}
class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (UPDATE_LOCKED_STATUS.equals(intent.getAction())) {
int locked = Settings.System.getInt(getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
if (locked == JGYActions.FRAME_CODE_LOCKED) {
iv_locked.setVisibility(View.VISIBLE);
iv_locked.setImageDrawable(getDrawable(R.drawable.locked));
SaveListUtils.getList();
} else {
iv_locked.setVisibility(View.VISIBLE);
iv_locked.setImageDrawable(getDrawable(R.drawable.unlock));
setNumberText("", View.GONE);
setNameText("", View.GONE);
setClassText("", View.GONE);
setBatchText("", View.GONE);
Glide.with(head).load(getDrawable(R.drawable.head)).into(head);
SysSettingUtils.setEnableSetting(MainActivity.this);
}
}
}
}
}

View File

@@ -28,7 +28,7 @@ import java.io.Serializable;
* 磁盘缓存帮助类
*/
public class CacheHelper {
private static final String TAG = "DiskLruCacheHelper";
private static final String TAG = CacheHelper.class.getSimpleName();
private MMKV mMMKV = MMKV.defaultMMKV();

View File

@@ -42,7 +42,6 @@ import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.disklrucache.CacheHelper;
import com.aoleyun.sn.disklrucache.DiskLruCacheHelper;
import com.aoleyun.sn.manager.ConnectManager;
import com.aoleyun.sn.manager.ConnectMode;
import com.aoleyun.sn.network.api.get.CheckTestUpdateApi;
@@ -127,11 +126,9 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableSource;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.BiFunction;
import io.reactivex.rxjava3.functions.Function;
import io.reactivex.rxjava3.functions.Function5;
import io.reactivex.rxjava3.schedulers.Schedulers;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
@@ -158,7 +155,6 @@ public class NetInterfaceManager {
private Context mContext;
private Retrofit mRetrofit;
private OkHttpClient okHttpClient;
private DiskLruCacheHelper mDiskLruCacheHelper;
private MMKV mMMKV = MMKV.defaultMMKV();
private CacheHelper cacheHelper;

View File

@@ -1,7 +1,6 @@
package com.aoleyun.sn.network.api.post;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.network.UrlAddress;
import java.util.Map;

View File

@@ -1,15 +1,12 @@
package com.aoleyun.sn.network.api.post;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.network.UrlAddress;
import java.util.Map;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
@@ -18,7 +15,7 @@ import retrofit2.http.QueryMap;
public interface GetUploadLogApi {
@Multipart
@POST(UrlAddress.UPLOAD_LOG_FILE)
Observable<BaseResponse<SnRunLog>> GetSnRunLog(
Observable<BaseResponse> UploadLog(
@QueryMap Map<String, String> params,
@Part MultipartBody.Part body
);

View File

@@ -263,30 +263,29 @@ public class LogcatService extends Service {
}
Map<String, String> params = new HashMap<>();
params.put("sn", Utils.getSerial());
MediaType mediaType = MediaType.Companion.parse("text/plain");
MediaType mediaType = MediaType.Companion.parse("text/html");
RequestBody fileBody = RequestBody.Companion.create(file, mediaType);
//设置一个file文件
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), fileBody);
NetInterfaceManager.getInstance().getUploadLogApi()
.GetSnRunLog(params, body)
.UploadLog(params, body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse<SnRunLog>>() {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("uploadFile", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<SnRunLog> snRunLogBaseResponse) {
public void onNext(BaseResponse snRunLogBaseResponse) {
Log.e("uploadFile", "onNext: " + snRunLogBaseResponse);
}
@Override
public void onError(Throwable e) {
Log.e("uploadFile", "onError: " + e.getMessage());
}
@Override

View File

@@ -40,6 +40,7 @@ import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.activity.checknet.CheckNetActivity;
import com.aoleyun.sn.activity.main.MainAPresenter;
import com.aoleyun.sn.activity.main.MainActivity;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.comm.CommonConfig;
@@ -821,7 +822,10 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
} else {
ToastUtil.betaShow("设备已解锁");
SysSettingUtils.setEnableSetting(this);
mPresenter.checkAoleyunUpdate();
}
Intent intent = new Intent(MainActivity.UPDATE_LOCKED_STATUS);
sendBroadcast(intent);
}
@Override
@@ -829,6 +833,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
if (noTag) {
//没有批次就没有管控
Log.e(TAG, "setTagsFinish: " + "not set tag");
mPresenter.getStudesInfo(true);
} else {
mPresenter.getDeviceBatch();
}
@@ -1011,8 +1016,5 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
SPUtils.put(this, "is_screen_lock", false);
SPUtils.put(this, "screen_tips", "");
}
mPresenter.getWiFiPasswd();
}
}

View File

@@ -48,6 +48,7 @@ import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -1134,20 +1135,42 @@ public class ApkUtils {
Log.e("addShortcut", "putstring:" + qch_force_app);
}
private static Set<String> AoleyunOSApp = new HashSet<String>() {{
this.add("com.aoleyun.info");
this.add("com.aoleyun.os");
this.add("com.aoleyun.sn");
this.add("com.aoleyun.browser");
this.add("com.aoleyun.appstore");
this.add("com.aoleyunos.dop1");
this.add("com.aoleyunos.dop2");
this.add("com.aoleyunos.dop3");
this.add("com.jiepier.filemanager");
this.add("com.calendar.uiui");
this.add("com.notepad.uiui");
this.add("com.calculator.uiui");
this.add("com.alarmclock.uiui");
this.add("com.uiui.speed");
}};
public static String getRunningAppInfo(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> infoList = activityManager.getRunningServices(Integer.MAX_VALUE);
ArrayList<UploadAppInfo> appList = new ArrayList<UploadAppInfo>(); //用来存储获取的应用信息数据
// ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// List<ActivityManager.RunningServiceInfo> infoList = activityManager.getRunningServices(Integer.MAX_VALUE);
//用来存储获取的应用信息数据
ArrayList<UploadAppInfo> appList = new ArrayList<>();
List<PackageInfo> packages = context.getPackageManager().getInstalledPackages(0);
String topPkg = ForegroundAppUtil.getForegroundPackageName(context);
Log.e(TAG, "getRunningAppInfo: " + topPkg);
for (PackageInfo packageInfo : packages) {
String packageName = packageInfo.packageName;
//排除桌面app和出厂自带app
if (desktopAPP.contains(packageName) || factoryapp.contains(packageName) || aoleyunAPP.contains(packageName)) {
if (desktopAPP.contains(packageName) || factoryapp.contains(packageName)) {
continue;
}
//排除所有系统应用,不显示
if (isSystemApp(context, packageName)) {
continue;
if (!AoleyunOSApp.contains(packageName)) {
continue;
}
} else {
//排除预装可以卸载的应用
if (canremove_systemapp.contains(packageName)) {
@@ -1156,19 +1179,22 @@ public class ApkUtils {
}
UploadAppInfo uploadAppInfo = new UploadAppInfo();
uploadAppInfo.setApp_name(packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());
uploadAppInfo.setPackage_name(packageInfo.packageName);
Log.e("getRunningAppInfo", "getRunningAppInfo:" + packageInfo.packageName);
uploadAppInfo.setPackage_name(packageName);
Log.e("getRunningAppInfo", "getRunningAppInfo:" + packageName);
String firstInstallTime = TimeUtils.transferLongToDate(packageInfo.lastUpdateTime);
uploadAppInfo.setInstall_time(firstInstallTime);
uploadAppInfo.setVersionCode(String.valueOf(packageInfo.versionCode));
uploadAppInfo.setState(0);
uploadAppInfo.setApp_size(getPackageSize(context, packageInfo.applicationInfo.publicSourceDir));
uploadAppInfo.setVersionName(packageInfo.versionName);
for (ActivityManager.RunningServiceInfo info : infoList) {
if (info.process.contains(packageInfo.packageName)) {
uploadAppInfo.setState(1);
Log.e("getRunningAppInfo", "getRunningAppInfo running: " + packageInfo.packageName);
}
// for (ActivityManager.RunningServiceInfo info : infoList) {
// if (info.process.contains(packageName)) {
// uploadAppInfo.setState(1);
// Log.e("getRunningAppInfo", "getRunningAppInfo running: " + packageName);
// }
// }
if (topPkg.equals(packageName)) {
uploadAppInfo.setState(1);
}
appList.add(uploadAppInfo);
}