修改usb
This commit is contained in:
@@ -67,8 +67,8 @@ android {
|
||||
productFlavors {
|
||||
beta {
|
||||
flavorDimensions "default"
|
||||
versionCode 32
|
||||
versionName "4.1"
|
||||
versionCode 33
|
||||
versionName "4.2"
|
||||
}
|
||||
|
||||
official {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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, "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
}
|
||||
|
||||
@@ -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, "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user