修改usb

This commit is contained in:
2022-09-26 21:01:55 +08:00
parent af9e9a25ee
commit 60d98b7166
11 changed files with 95 additions and 54 deletions

View File

@@ -67,8 +67,8 @@ android {
productFlavors {
beta {
flavorDimensions "default"
versionCode 32
versionName "4.1"
versionCode 33
versionName "4.2"
}
official {

View File

@@ -74,7 +74,7 @@ public class BaseApplication extends Application {
RunningAppManager.init(this);
TimeControlManager.init(this);
ControlManager.init(this);
ControlPanelManager.init(this);
// ControlPanelManager.init(this);
DeviceManager.init(this);
AmapManager.init(this);
NetInterfaceManager.init(this);

View File

@@ -1,5 +1,10 @@
package com.uiui.sn.bean;
import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.JsonParser;
import java.io.Serializable;
public class AppUsageTime implements Serializable {
@@ -36,4 +41,10 @@ public class AppUsageTime implements Serializable {
public void setUsageTime(long usageTime) {
this.usageTime = usageTime;
}
@NonNull
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
}
}

View File

@@ -12,6 +12,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.os.Build;
import android.os.PowerManager;
@@ -33,6 +34,7 @@ import com.uiui.sn.bean.AppUsageTime;
import com.uiui.sn.bean.PartTime;
import com.uiui.sn.bean.RemainTime;
import com.uiui.sn.config.CommonConfig;
import com.uiui.sn.disklrucache.CacheHelper;
import com.uiui.sn.gson.GsonUtils;
import com.uiui.sn.network.NetInterfaceManager;
import com.uiui.sn.utils.JGYUtils;
@@ -53,6 +55,8 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
@@ -68,6 +72,7 @@ public class RunningAppManager {
@SuppressLint("StaticFieldLeak")
private static RunningAppManager mRunningAppManager;
private Context mContext;
private CacheHelper mCacheHelper;
private MMKV mMMKV = MMKV.defaultMMKV();
public static final String RemainingTimeMap = "RemainingTimeMap_KEY";
@@ -101,8 +106,9 @@ public class RunningAppManager {
private RunningAppManager(Context context) {
if (context == null) {
throw new RuntimeException("Context is NULL");
}
}
this.mContext = context;
this.mCacheHelper = new CacheHelper(context);
registerTimeReceiver(mContext);
String remainsTimeJson = mMMKV.decodeString(RemainingTimeMap, "");
@@ -205,7 +211,7 @@ public class RunningAppManager {
Log.i(TAG, "checkForegroundAppName: 没有切换应用");
if (RunningAppManager.getInstance().inControlTime(appPackageName)) {
removeTask(topPackage);
JGYUtils.getInstance().killBackgroundProcesses(topPackage);
killApp();
gotoLauncher();
} else {
Log.i(TAG, "checkForegroundAppName: 没有管控");
@@ -226,7 +232,7 @@ public class RunningAppManager {
if (RunningAppManager.getInstance().inControlTime(appPackageName)) {
Log.i(TAG, "checkForegroundAppName: 没有剩余时间2");
removeTask(topPackage);
JGYUtils.getInstance().killBackgroundProcesses(topPackage);
killApp();
gotoLauncher();
} else {
RunningAppManager.getInstance().recordPackageOpenTime(topPackage);
@@ -236,6 +242,23 @@ public class RunningAppManager {
saveAppRemainingTime();
}
private void killApp() {
PackageManager pm = mContext.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> launcherApp = pm.queryIntentActivities(intent, 0);
List<String> appList = launcherApp.stream().map(resolveInfo -> resolveInfo.activityInfo.packageName).collect(Collectors.toList());
Log.e(TAG, "killApp: " + appList);
for (String pkg : appList) {
if (JGYUtils.fuxiaoying.equals(pkg)
|| BuildConfig.APPLICATION_ID.equals(pkg)
) {
continue;
}
JGYUtils.getInstance().killBackgroundProcesses(pkg);
}
}
private TimeChangedReceiver mTimeChangedReceiver;
/**
@@ -526,9 +549,12 @@ public class RunningAppManager {
singleAppUsageTime.setUsageTime(1);
} else {
singleAppUsageTime = mAllAppUsageTime.get(pkg);
singleAppUsageTime.setUsageTime(singleAppUsageTime.getUsageTime() + 1);
long singleTime = singleAppUsageTime.getUsageTime();
Log.e(TAG, "reduceAppRemainingTime: " + singleTime);
singleAppUsageTime.setUsageTime(singleTime + 1);
}
mAllAppUsageTime.put(pkg, singleAppUsageTime);
Log.e(TAG, "reduceAppRemainingTime: mAllAppUsageTime = " + mAllAppUsageTime.toString());
Log.i(TAG, "reduceAppRemainingTime: " + appTimeControl.getToday_time());
long remainingTime = appTimeControl.getToday_time() - time;
if (remainingTime < 0) {
@@ -555,6 +581,7 @@ public class RunningAppManager {
private String getAppName(String pkg) {
if (TextUtils.isEmpty(pkg)) return "未知";
PackageManager pm = mContext.getPackageManager();
PackageInfo info = null;
try {

View File

@@ -12,6 +12,7 @@ import android.util.Log;
import com.google.gson.JsonObject;
import com.tencent.mmkv.MMKV;
import com.uiui.sn.BuildConfig;
import com.uiui.sn.bean.SystemSettings;
import com.uiui.sn.config.CommonConfig;
import com.uiui.sn.utils.ApkUtils;
@@ -70,8 +71,8 @@ public class ControlManager {
}
SystemSettings systemSettings = GsonUtils.toJavaObject(jsonString, SystemSettings.class);
if (null != systemSettings) {
// setUSBstate(systemSettings);
ControlPanelManager.getInstance().setUsbStatus(systemSettings.getSetting_usb());
setUSBstate(systemSettings);
// ControlPanelManager.getInstance().setUsbStatus(systemSettings.getSetting_usb());
setPhoneList(systemSettings);
setBluetooth(systemSettings);
setHotspot(systemSettings);
@@ -100,8 +101,8 @@ public class ControlManager {
Log.e(TAG, "setSystemSetting: SystemSettings is NULL");
return;
}
// setUSBstate(systemSettings);
ControlPanelManager.getInstance().setUsbStatus(systemSettings.getSetting_usb());
setUSBstate(systemSettings);
// ControlPanelManager.getInstance().setUsbStatus(systemSettings.getSetting_usb());
setPhoneList(systemSettings);
setBluetooth(systemSettings);
setHotspot(systemSettings);
@@ -179,6 +180,30 @@ public class ControlManager {
}
}
public void setUSBstate(String action) {
Log.e("setUSBstate", "setting_usb:" + action);
boolean qch_usb_choose = Settings.System.putString(mResolver, "qch_usb_choose", action);
Log.e("setUSBstate", "qch_usb_choose:" + qch_usb_choose);
String usbStatus = "";
switch (action) {
case "usb_charge":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE;
break;
case "usb_mtp":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MTP;
break;
// case "usb_midi":
// usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI;
// break;
default:
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE;
break;
}
Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings");
// if (!BuildConfig.DEBUG)
mContext.sendBroadcast(usbIntent);
}
/**
* usb连接模式管控
*
@@ -202,21 +227,6 @@ public class ControlManager {
}
}
/**
* usb连接模式管控
*/
public void setUSBstate(String action) {
//USB数据功能管控
//仅充电usb_charge
//MTP模式usb_mtp
//Midi模式usb_midi
if (!DeviceManager.isDebugMode()) {
Log.e(TAG, "qch_usb_choose:" + action);
Intent usbIntent = new Intent(action).setPackage("com.android.settings");
mContext.sendBroadcast(usbIntent);
}
}
private void setPhoneList(SystemSettings settings) {
//设置电话功能,电话白名单
int setting_call = changeNum(settings.getSetting_call());
@@ -731,8 +741,8 @@ public class ControlManager {
//仅充电usb_charge
//MTP模式usb_mtp
//Midi模式usb_midi
// String setting_usb = Settings.System.getString(mResolver, "qch_usb_choose");
String setting_usb = MMKV.defaultMMKV().decodeString(ControlPanelManager.KEY_USB_STATUS, "usb_charge");
String setting_usb = Settings.System.getString(mResolver, "qch_usb_choose");
// String setting_usb = MMKV.defaultMMKV().decodeString(ControlPanelManager.KEY_USB_STATUS, "usb_charge");
Log.e("SystemSetting", "setting_usb:" + setting_usb);
String usbStatus = "";
if (TextUtils.isEmpty(setting_usb)) {
@@ -856,7 +866,7 @@ public class ControlManager {
if (state == 0) {
// setBluetooth(0);
// setHotspot(0);
setUSBstate(CommonConfig.AOLE_ACTION_USB_USB_MTP);
// setUSBstate(CommonConfig.AOLE_ACTION_USB_USB_MTP);
}
}

View File

@@ -1856,6 +1856,7 @@ public class NetInterfaceManager {
Log.e("getAllappPackage", "onNext: " + listBaseResponse);
List<AppInfo> appInfoList = listBaseResponse.data;
if (null != appInfoList && appInfoList.size() != 0) {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, listBaseResponse.toString());
HashSet<String> allAppPkg = new HashSet<>();
for (AppInfo appInfo : appInfoList) {
allAppPkg.add(appInfo.getApp_package());
@@ -1865,9 +1866,11 @@ public class NetInterfaceManager {
ApkUtils.writeAppPackageList(mContext, allPkgSet);
getAppStart(appInfoList);
} else {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, "");
ApkUtils.writeAppPackageList(mContext, "");
}
} else {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, "");
ApkUtils.writeAppPackageList(mContext, "");
}
}

View File

@@ -88,7 +88,7 @@ public class APKinstallReceiver extends BroadcastReceiver {
private static void sendAppInfo() {
Observable.create((ObservableEmitter<String> emitter) -> newAppListener = emitter::onNext)
.throttleLast(5, TimeUnit.SECONDS)
.throttleLast(3, TimeUnit.MINUTES)
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {

View File

@@ -503,7 +503,7 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
} else if (Intent.ACTION_POWER_CONNECTED.equals(action) || Intent.ACTION_POWER_DISCONNECTED.equals(action)) {
ControlManager.getInstance().setDefaultUSBstate();
// ControlManager.getInstance().setDefaultUSBstate();
} else if (Intent.ACTION_BATTERY_LOW.equals(action) || Intent.ACTION_BATTERY_OKAY.equals(action)) {
}

View File

@@ -21,8 +21,10 @@ import com.uiui.sn.bean.SystemSettingsSet;
import com.uiui.sn.bean.browser.BrowserApiData;
import com.uiui.sn.bean.browser.BrowserBean;
import com.uiui.sn.config.CommonConfig;
import com.uiui.sn.disklrucache.CacheHelper;
import com.uiui.sn.manager.ControlManager;
import com.uiui.sn.network.NetInterfaceManager;
import com.uiui.sn.network.UrlAddress;
import com.uiui.sn.service.ManagerService;
import com.uiui.sn.utils.ApkUtils;
import com.uiui.sn.gson.GsonUtils;
@@ -53,9 +55,11 @@ public class MainSPresenter implements MainSContact.Presenter {
private MainSContact.MainView mView;
private Context mContext;
private CacheHelper mCacheHelper;
public MainSPresenter(Context context) {
this.mContext = context;
this.mCacheHelper = new CacheHelper(context);
}
private BehaviorSubject<ActivityEvent> lifecycle;
@@ -156,8 +160,10 @@ public class MainSPresenter implements MainSContact.Presenter {
if (code == 200) {
List<AppInfo> appInfoList = listBaseResponse.data;
if (appInfoList == null || appInfoList.size() == 0) {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, "");
ApkUtils.writeAppPackageList(mContext, "");
} else {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, listBaseResponse.toString());
HashSet allPkgSet = new HashSet<String>();
for (AppInfo pkg : appInfoList) {
allPkgSet.add(pkg.getApp_package());
@@ -170,6 +176,7 @@ public class MainSPresenter implements MainSContact.Presenter {
}
JGYUtils.getInstance().deleteOtherApp();
} else {
mCacheHelper.put(UrlAddress.GET_ALL_PACKAGE, "");
ApkUtils.writeAppPackageList(mContext, "");
}
}

View File

@@ -121,6 +121,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
mPresenter.getAllApp();
TimeTask task = new TimeTask();
task.execute("ntp.aliyun.com");
NetInterfaceManager.getInstance().SendAppInstallInfo();
}
@Override
@@ -188,7 +189,8 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
SPUtils.put(this, CommonConfig.SN_VERSIONCODE, BuildConfig.VERSION_CODE);
registerReceivers();
NetworkUtils.registerNetworkStatusChangedListener(this);
ControlManager.getInstance().setDefaultUSBstate();
// ControlManager.getInstance().setDefaultUSBstate();
NetInterfaceManager.getInstance().SendAppInstallInfo();
}
@Override

View File

@@ -885,26 +885,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
if (!TextUtils.isEmpty(jsonString)) {
JsonObject jsonObject = GsonUtils.getJsonObject(jsonString);
String setting_usb = jsonObject.get("setting_usb").getAsString();
ControlPanelManager.getInstance().setUsbStatus(setting_usb);
// boolean qch_usb_choose = JGYUtils.putString(context.getContentResolver(), "qch_usb_choose", setting_usb);
// Log.e("setUsbState:", JGYUtils.get(context.getContentResolver(), "qch_usb_choose"));
// String usbStatus = "";
// switch (setting_usb) {
// case "usb_charge":
// usbStatus = AOLE_ACTION_USB_USB_CHARGE;
// break;
// case "usb_mtp":
// usbStatus = AOLE_ACTION_USB_USB_MTP;
// break;
//// case "usb_midi":
//// usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI;
//// break;
// default:
// usbStatus = AOLE_ACTION_USB_USB_CHARGE;
// break;
// }
// Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings");
// context.sendBroadcast(usbIntent);
ControlManager.getInstance().setUSBstate(setting_usb);
} else {
ToastUtil.debugShow("setUsbState jsonString is NULL");
}
@@ -1566,9 +1547,9 @@ public class MessageReceiver extends XGPushBaseReceiver {
private void oneKeyNetwork(Context context, String extras) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
int is_network = jsonObject.get("is_network").getAsInt();
if (is_network==1){
if (is_network == 1) {
JGYUtils.getInstance().oneKeyDisconnection();
}else {
} else {
JGYUtils.getInstance().restorrNetwork();
}
}