diff --git a/app/src/main/java/com/aoleyun/sn/activity/EyeProtectionActivity.java b/app/src/main/java/com/aoleyun/sn/activity/EyeProtectionActivity.java index 31fd6d2..2a607b6 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/EyeProtectionActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/EyeProtectionActivity.java @@ -14,6 +14,7 @@ import com.aoleyun.sn.databinding.ActivityEyeProtectionBinding; import com.aoleyun.sn.detection.SensorCheckUtil; import com.aoleyun.sn.service.DetectionService; import com.aoleyun.sn.service.ShakeDetectionService; +import com.aoleyun.sn.utils.AndroidSettingsWriter; import com.aoleyun.sn.view.ToggleButton; import com.hjq.toast.Toaster; import com.tencent.mmkv.MMKV; @@ -42,14 +43,14 @@ public class EyeProtectionActivity extends BaseDataBindingActivity { mBinding.toggleButton1.setOnToggleChanged(new ToggleButton.OnToggleChanged() { @Override public void onToggle(boolean on) { - Settings.Secure.putInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, on ? 1 : 0); + AndroidSettingsWriter.putInt(EyeProtectionActivity.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.NIGHT_DISPLAY_ACTIVATED, on ? 1 : 0); } }); mBinding.toggleButton2.setOnToggleChanged(new ToggleButton.OnToggleChanged() { @Override public void onToggle(boolean on) { - Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, on ? 1 : 0); - Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, on ? 0 : 1); + AndroidSettingsWriter.putInt(EyeProtectionActivity.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, on ? 1 : 0); + AndroidSettingsWriter.putInt(EyeProtectionActivity.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, on ? 0 : 1); } }); mBinding.toggleButton3.setDisable(true); diff --git a/app/src/main/java/com/aoleyun/sn/activity/debug/DebugActivity.java b/app/src/main/java/com/aoleyun/sn/activity/debug/DebugActivity.java index 0df8e4f..0d96b32 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/debug/DebugActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/debug/DebugActivity.java @@ -27,6 +27,7 @@ import com.aoleyun.sn.base.mvvm.BaseMvvmActivity; import com.aoleyun.sn.databinding.ActivityDebugBinding; import com.aoleyun.sn.manager.AllwinnerCubeMdmManager; import com.aoleyun.sn.receiver.ShortcutReceiver; +import com.aoleyun.sn.utils.AndroidSettingsWriter; import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.JgyUtils; import com.hjq.toast.Toaster; @@ -159,16 +160,16 @@ public class DebugActivity extends BaseMvvmActivity appBlackNet = new ArrayList<>(); appBlackNet.add("com.quark.browser"); if (JgyUtils.isAllWinnerDevice()) { @@ -689,7 +690,7 @@ public class DebugActivity extends BaseMvvmActivity appBlackNet = new ArrayList<>(); appBlackNet.add("com.quark.browser"); appBlackNet.add("com.tencent.mtt"); @@ -700,7 +701,7 @@ public class DebugActivity extends BaseMvvmActivity()); } @@ -758,7 +759,7 @@ public class DebugActivity extends BaseMvvmActivity appIDList = baseResponse.data; @@ -1794,7 +1795,7 @@ public class NetInterfaceManager { //且没有被其他管控来源要求禁用的应用 Log.e("getSnAppAttr", "onNext: appAttrList is empty"); showAppWithoutOtherSource(oldPkgs); - Settings.Global.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_DISABLE_APP, "null"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.AOLE_ACTION_DISABLE_APP, "null"); } else { showAppWithoutOtherSource(oldPkgs); for (AppAttr appAttr : appAttrList) { @@ -1807,7 +1808,7 @@ public class NetInterfaceManager { .map(AppAttr::getApp_package) .collect(Collectors.joining(",")); Log.e("getSnAppAttr", "onNext: disableApp = " + disableApp); - Settings.Global.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_DISABLE_APP, disableApp); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.AOLE_ACTION_DISABLE_APP, disableApp); } } @@ -1906,15 +1907,15 @@ public class NetInterfaceManager { if (baseResponse.isSuccess()) { EBagCode eBagCode = baseResponse.data; if (JgyUtils.getInstance().checkAppPlatform() != JgyUtils.YXPD1Platform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.ACTIVATIONBEAN_CODE_KEY, eBagCode.getEbagCode()); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.ACTIVATIONBEAN_CODE_KEY, eBagCode.getEbagCode()); } String ebagCode = eBagCode.getEbagCode(); mMMKV.encode("ebagCode", ebagCode); - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 1); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.UIUI_ACTIVATION_KEY, 1); JgyUtils.getInstance().checkLocalExternalFiles(); } else { Log.e("getEBagCode", "onNext: " + baseResponse.data); - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.UIUI_ACTIVATION_KEY, 0); } } @@ -2167,7 +2168,7 @@ public class NetInterfaceManager { } else if (JgyUtils.getInstance().checkAppPlatform() == JgyUtils.MT6765Platform) { JgyUtils.getInstance().setDefaultDesktop("com.aly.os"); } - Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); // Settings.System.putInt(mContext.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, 0); } else if (locked == JGYActions.NET_CODE_UNLOCKED) { // SysSettingUtils.setEnableSetting(mContext); @@ -2185,15 +2186,15 @@ public class NetInterfaceManager { StatusBarManager mStatusBarManager = (StatusBarManager) mContext.getSystemService(Context.STATUS_BAR_SERVICE); mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); } - Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_UNLOCKED); - Settings.System.putInt(mContext.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, 1); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, ""); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_UNLOCKED); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_ALLOW_INSTALL, 1); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_FORBID, ""); JgyUtils.getInstance().addAppInstallWhiteList(new ArrayList<>()); JgyUtils.getInstance().setAppRestriction(0); JgyUtils.getInstance().setDeveloperOptions(1); } } else if (response.code == -300) { - Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); Log.e("getLockedState", "locked: " + false); } } @@ -2852,7 +2853,7 @@ public class NetInterfaceManager { Log.e(TAG, "setHomepagtag: " + e.getMessage()); } } - boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL); + boolean home = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "homepagURL", homepagURL); Log.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home); String whitelist = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray"); Log.e("getHomePageBookmarks ", "whitelist: " + whitelist); @@ -2913,7 +2914,7 @@ public class NetInterfaceManager { intent1.putExtra("homepage", "Invalid"); mContext.sendBroadcast(intent1); - Settings.System.putString(mContext.getContentResolver(), "homepagURL", " "); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "homepagURL", " "); Intent intent2 = new Intent("qch_app_brower_website"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { intent2.setPackage("com.android.settings") @@ -2933,21 +2934,21 @@ public class NetInterfaceManager { if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) { white += "," + homePage; } - boolean DeselectBrowserArray = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white); + boolean DeselectBrowserArray = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", white); Log.e("setBrowserBlackList", "setBrowserList white = " + white + ":" + DeselectBrowserArray); } else { - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", homePage); } String black = browserData.getBlack(); if (!TextUtils.isEmpty(black)) { - boolean qch_webblack_url = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black); + boolean qch_webblack_url = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_webblack_url", black); Log.e("setBrowserBlackList", "setBrowserList black = " + black + ":" + qch_webblack_url); if (JgyUtils.isAllWinnerDevice()) { List componentNames = new ArrayList<>(Arrays.asList(black.split(","))); AllwinnerCubeMdmManager.getInstance().setComponentDisable(componentNames, true); } } else { - Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_webblack_url", " "); } String white_ip = browserData.getWhite_ip(); if (!TextUtils.isEmpty(white_ip)) { @@ -2962,8 +2963,8 @@ public class NetInterfaceManager { mMMKV.encode("black_ip", " "); } } else { - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); - Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", homePage); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_webblack_url", " "); mMMKV.encode("white_ip", " "); mMMKV.encode("black_ip", " "); } @@ -3173,7 +3174,7 @@ public class NetInterfaceManager { if (forceApp != null) { forceAppSet.addAll(forceApp); } - boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppSet)); + boolean aole_force_app = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppSet)); Log.e("getForceDownload", "aole_force_app:" + aole_force_app); } @@ -3742,14 +3743,14 @@ public class NetInterfaceManager { if (response.isSuccess()) { String app_package = response.data.getApp_package(); ForegroundAppUtil.setTopAppClass(mContext, app_package); - Settings.Global.putString(mContext.getContentResolver(), ForegroundAppUtil.TOPAPP_KEY, app_package); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, ForegroundAppUtil.TOPAPP_KEY, app_package); ForegroundAppUtil.openTopApp(mContext); } else { if ("YX-T01".equalsIgnoreCase(Build.MODEL)) { JgyUtils.getInstance().setTongyiAppTop(); } else { ForegroundAppUtil.setTopAppClass(mContext, ""); - Settings.Global.putString(mContext.getContentResolver(), ForegroundAppUtil.TOPAPP_KEY, ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, ForegroundAppUtil.TOPAPP_KEY, ""); } } } @@ -4349,7 +4350,7 @@ public class NetInterfaceManager { } else { try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list"); Log.e(TAG, "getBlackList: " + result); } catch (Exception e) { @@ -4360,23 +4361,23 @@ public class NetInterfaceManager { BlacklistBean blacklistBean = blacklistBeanBaseResponse.data; if (blacklistBean == null) { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { List strings = blacklistBean.getBlacklist(); if (strings == null || strings.isEmpty()) { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { // TODO: 2024/10/31 需要多写一次保证数据库变化 - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings)); } } } } else { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } } @@ -4425,7 +4426,7 @@ public class NetInterfaceManager { } else { try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list"); Log.e(TAG, "getWhiteList: " + result); } catch (Exception e) { @@ -4436,46 +4437,46 @@ public class NetInterfaceManager { WhitelistBean whitelistBean = blacklistBeanBaseResponse.data; if (whitelistBean == null) { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { if (("Ebox201w".equals(Build.MODEL) && JgyUtils.getInstance().checkAppPlatform() == JgyUtils.MT8768Platform) || JgyUtils.getInstance().checkAppPlatform() == JgyUtils.QualcommPlatform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } } } else { List strings = whitelistBean.getWhitelist(); if (strings == null || strings.isEmpty()) { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { if (("Ebox201w".equals(Build.MODEL) && JgyUtils.getInstance().checkAppPlatform() == JgyUtils.MT8768Platform) || JgyUtils.getInstance().checkAppPlatform() == JgyUtils.QualcommPlatform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } } } else { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { // TODO: 2024/10/31 需要多写一次保证数据库变化 strings.add("ttstd.com"); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); strings.remove("ttstd.com"); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); } else { if (("Ebox201w".equals(Build.MODEL) && JgyUtils.getInstance().checkAppPlatform() == JgyUtils.MT8768Platform) || JgyUtils.getInstance().checkAppPlatform() == JgyUtils.QualcommPlatform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); } } } } } else { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { if (("Ebox201w".equals(Build.MODEL) && JgyUtils.getInstance().checkAppPlatform() == JgyUtils.MT8768Platform) || JgyUtils.getInstance().checkAppPlatform() == JgyUtils.QualcommPlatform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } } } diff --git a/app/src/main/java/com/aoleyun/sn/push/PushManager.java b/app/src/main/java/com/aoleyun/sn/push/PushManager.java index 13b26a7..5bf90a4 100644 --- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java +++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java @@ -43,6 +43,7 @@ import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.network.RetryCallback; import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.service.main.MainService; +import com.aoleyun.sn.utils.AndroidSettingsWriter; import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.BatteryUtils; import com.aoleyun.sn.utils.CacheUtils; @@ -322,8 +323,8 @@ public class PushManager { JgyUtils.getInstance().wakeUpAoleyunAPP(); NetInterfaceManager.getInstance().getPushAndPubAppTag(); NetInterfaceManager.clearAllCache(); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, ""); - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_FORCE_APP, ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_FORBID, ""); sendRefreshBroadcast(mContext); SysSettingUtils.setDisableSetting(mContext); break; @@ -772,9 +773,9 @@ public class PushManager { List forceAppList = new ArrayList<>(Arrays.asList(forceApp.split(","))); forceAppList.remove(pkg); if (forceAppList.size() != 0) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppList)); } else { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_FORCE_APP, ""); } } ApkUtils.UninstallAPP(mContext, pkg); @@ -911,10 +912,10 @@ public class PushManager { Log.e("fht", "aole_disable_slide: " + aole_disable_slide); if (!TextUtils.isEmpty(strban)) { - Settings.System.putString(mResolver, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, strban); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, strban); Log.e("fht", "sendban::" + strban); } else { - Settings.System.putString(mResolver, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); } Log.e("fht", "aole_disable_slide::" + Settings.System.getString(mResolver, CommonConfig.AOLE_ACTION_DISABLE_SLIDE)); } @@ -989,15 +990,15 @@ public class PushManager { Log.e(TAG, "settingPowerOn: aole_app_power_on = " + not); if (TextUtils.isEmpty(not)) { //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 - Settings.System.putString(mResolver, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); } else { - Settings.System.putString(mResolver, CommonConfig.AOLE_ACTION_APP_POWER_ON, not); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, not); } } private void writeDeselectBrowserIDtoSystem(String s) { - boolean bool = Settings.System.putString(mResolver, "DeselectBrowserArray", s); + boolean bool = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", s); Log.e("SystemSetting", "DeselectBrowserArray---------" + s); Log.e("SystemSetting", "DeselectBrowserArray---------" + bool); } @@ -1028,7 +1029,7 @@ public class PushManager { } JsonObject jSONObject = GsonUtils.getJsonObject(s); int i = changeNum(jSONObject.get("lock").getAsInt()); - Settings.System.putInt(mResolver, JGYActions.ACTION_QCH_UNLOCK_IPAD, i); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, JGYActions.ACTION_QCH_UNLOCK_IPAD, i); Log.e("SystemSetting", "qch_unlock_ipad---------" + i); if (getBatteryLevel() >= CommonConfig.MIN_POWER) { @@ -1167,10 +1168,10 @@ public class PushManager { String packageName = jsonObject.get("app_package").getAsString(); if (TextUtils.isEmpty(packageName)) { - Settings.Global.putString(mResolver, ForegroundAppUtil.TOPAPP_KEY, ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, ForegroundAppUtil.TOPAPP_KEY, ""); ForegroundAppUtil.setTopAppClass(mContext, ""); } else { - Settings.Global.putString(mResolver, ForegroundAppUtil.TOPAPP_KEY, packageName); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, ForegroundAppUtil.TOPAPP_KEY, packageName); ForegroundAppUtil.setTopAppClass(mContext, packageName); ForegroundAppUtil.openTopApp(mContext); } @@ -1394,14 +1395,14 @@ public class PushManager { Log.e(TAG, "setEbagCode: " + "ebagCode is empty"); mMMKV.encode("ebagCode", ""); if (JgyUtils.getInstance().checkAppPlatform() != JgyUtils.YXPD1Platform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.ACTIVATIONBEAN_CODE_KEY, ""); - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.ACTIVATIONBEAN_CODE_KEY, ""); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.UIUI_ACTIVATION_KEY, 0); } } else { mMMKV.encode("ebagCode", ebagCode); if (JgyUtils.getInstance().checkAppPlatform() != JgyUtils.YXPD1Platform) { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.ACTIVATIONBEAN_CODE_KEY, ebagCode); - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 1); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.ACTIVATIONBEAN_CODE_KEY, ebagCode); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, CommonConfig.UIUI_ACTIVATION_KEY, 1); } } } diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java index c04a878..7d25370 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java @@ -55,6 +55,7 @@ import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.rlog.LogDBManager; import com.aoleyun.sn.service.DetectionService; import com.aoleyun.sn.service.ShakeDetectionService; +import com.aoleyun.sn.utils.AndroidSettingsWriter; import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.CacheUtils; import com.aoleyun.sn.utils.ForegroundAppUtil; @@ -459,7 +460,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt try { if (mMMKV.decodeInt(CommonConfig.DEVICES_FRIST_START, 0) == 0) { if (JgyUtils.getInstance().checkAppPlatform() == JgyUtils.DX11Platform) { - Settings.System.putInt(getContentResolver(), CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, 1); + AndroidSettingsWriter.putInt(MainService.this, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, 1); } if (!checkAoleyunApp()) { Log.e(TAG, "onStartCommand: " + "checkAoleyunApp"); @@ -479,7 +480,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt JgyUtils.getInstance().setTongyiAppTop(); } if (JgyUtils.getInstance().checkAppPlatform() == JgyUtils.YXPD1Platform) { - Settings.System.putString(getContentResolver(), CommonConfig.ACTIVATIONBEAN_CODE_KEY, Utils.getSerial(this)); + AndroidSettingsWriter.putString(MainService.this, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.ACTIVATIONBEAN_CODE_KEY, Utils.getSerial(this)); if (ApkUtils.isAvailable(this, JgyUtils.JXW_LAUNCHER_PACKAGE_NAME)) { Intent intent2 = new Intent(Intent.ACTION_VIEW); intent2.setPackage(JgyUtils.JXW_LAUNCHER_PACKAGE_NAME); @@ -496,7 +497,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt Log.e(TAG, "initOnBackground: " + launcherPkg); JgyUtils.getInstance().checkDefaultDesktop(launcherPkg); - Settings.Global.putString(getContentResolver(), "AOLE_SERIAL", Utils.getSerial(MainService.this)); + AndroidSettingsWriter.putString(MainService.this, AndroidSettingsWriter.NAMESPACE_GLOBAL, "AOLE_SERIAL", Utils.getSerial(MainService.this)); PackageManager pm = getPackageManager(); try { @@ -552,7 +553,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt String allowAppList = Settings.System.getString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST); if (TextUtils.isEmpty(allowAppList)) { - Settings.System.putString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", JgyUtils.DEFAULT_APP_SOURCE_WHITE_LIST)); + AndroidSettingsWriter.putString(MainService.this, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", JgyUtils.DEFAULT_APP_SOURCE_WHITE_LIST)); } String aole_app_forbid = Settings.System.getString(getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID); @@ -608,7 +609,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt //没有批次就没有管控 Log.e(TAG, "setTagsFinish: not set tag"); // SysSettingUtils.setEnableSetting(this); - Settings.System.putString(getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, ""); + AndroidSettingsWriter.putString(MainService.this, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_FORCE_APP, ""); } else { mServiceModel.getForceDownload(); mServiceModel.getWallpaper(); @@ -1168,16 +1169,16 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt } switch (action) { case NIGHT_DISPLAY_ENABLED: - Settings.Secure.putInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 1); + AndroidSettingsWriter.putInt(MainService.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 1); break; case NIGHT_DISPLAY_DISABLED: - Settings.Secure.putInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 0); + AndroidSettingsWriter.putInt(MainService.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 0); break; case READ_MODEL_ENABLED: - Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 1); + AndroidSettingsWriter.putInt(MainService.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 1); break; case READ_MODEL_DISABLED: - Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0); + AndroidSettingsWriter.putInt(MainService.this, AndroidSettingsWriter.NAMESPACE_SECURE, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0); break; default: } diff --git a/app/src/main/java/com/aoleyun/sn/utils/AndroidSettingsWriter.java b/app/src/main/java/com/aoleyun/sn/utils/AndroidSettingsWriter.java index 1bab10a..41f2cd7 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/AndroidSettingsWriter.java +++ b/app/src/main/java/com/aoleyun/sn/utils/AndroidSettingsWriter.java @@ -12,14 +12,17 @@ import android.util.Log; import java.lang.reflect.Method; /** - * 以 "android" 包名记账写 Settings.System(system uid + platform 签名前提)。 - * 逻辑自 JgyUtils.androidSettingsPutString 原样抽出,未做任何改动。 + * 以 "android" 包名记账写 Settings.System/Secure/Global(system uid + platform 签名前提), + * 模拟写入未被确认时退回直接 Settings 写。 */ public final class AndroidSettingsWriter { private static final String TAG = "AndroidSettingsWriter"; - private static final String CALL_METHOD_PUT_SYSTEM = "PUT_system"; + public static final String NAMESPACE_SYSTEM = "system"; + public static final String NAMESPACE_SECURE = "secure"; + public static final String NAMESPACE_GLOBAL = "global"; + private static final String CALL_METHOD_USER_KEY = "_user"; private static final String SETTINGS_AUTHORITY = "settings"; @@ -42,17 +45,24 @@ public final class AndroidSettingsWriter { } } + /** + * 兼容旧调用:等同于 {@code putString(context, NAMESPACE_SYSTEM, name, value)}。 + */ public static boolean androidSettingsPutString(Context context, String name, String value) { + return putString(context, NAMESPACE_SYSTEM, name, value); + } + + public static boolean putString(Context context, String namespace, String name, String value) { Context targetContext = context; if (targetContext == null) { targetContext = sAppContext; } if (targetContext == null) { - Log.e(TAG, "androidSettingsPutString: Context is null"); + Log.e(TAG, "putString: Context is null"); return false; } if (TextUtils.isEmpty(name)) { - Log.e(TAG, "androidSettingsPutString: name is empty"); + Log.e(TAG, "putString: name is empty"); return false; } @@ -64,25 +74,56 @@ public final class AndroidSettingsWriter { // 注意:发起方进程绝不能 clearCallingIdentity——它会篡改本进程事务携带的 // 调用身份,SettingsProvider 侧校验 calling pid 会直接拒绝("doesn't match source pid")。 // 那个手法只适用于服务端(代理进程处理入站 binder 调用时)。 - Bundle result = callSettingsPut(targetContext, arg, name); + Bundle result = callSettingsPut(targetContext, namespace, arg, name); boolean bundleOk = isOk(result); - // 该厂商 SettingsProvider 对 PUT_system 静默返回 null(不抛异常也不回 Bundle), + // 该厂商 SettingsProvider 对 PUT_* 静默返回 null(不抛异常也不回 Bundle), // 成败以写后读回为准。 - String readBack = null; - try { - readBack = Settings.System.getString(targetContext.getContentResolver(), name); - } catch (Throwable t) { - Log.w(TAG, "androidSettingsPutString: read back failed for " + name + ": " + t); - } + String readBack = readSetting(targetContext.getContentResolver(), namespace, name); boolean verified = TextUtils.equals(readBack, value); - if (!bundleOk && !verified) { - Log.w(TAG, "androidSettingsPutString: failed for " + name - + " (result=" + result + ", readBack=" + readBack + ")"); - return false; + if (bundleOk || verified) { + Log.d(TAG, "putString succeeded for " + namespace + "/" + name + + " (bundleOk=" + bundleOk + ", verified=" + verified + ")"); + return true; + } + Log.w(TAG, "putString failed for " + namespace + "/" + name + + " (result=" + result + ", readBack=" + readBack + "), fallback to direct put"); + return directPutString(targetContext.getContentResolver(), namespace, name, value); + } + + /** + * Settings 各表内部都按字符串落库(putInt == putString(String.valueOf(int))), + * 所以类型写入与字符串写入同一条路径,直接调用兜底也落在对应表的 putString 上。 + */ + public static boolean putInt(Context context, String namespace, String name, int value) { + return putString(context, namespace, name, String.valueOf(value)); + } + + private static String readSetting(ContentResolver cr, String namespace, String name) { + try { + switch (namespace) { + case NAMESPACE_SECURE: + return Settings.Secure.getString(cr, name); + case NAMESPACE_GLOBAL: + return Settings.Global.getString(cr, name); + default: + return Settings.System.getString(cr, name); + } + } catch (Throwable t) { + Log.w(TAG, "readSetting failed for " + namespace + "/" + name + ": " + t); + return null; + } + } + + private static boolean directPutString(ContentResolver cr, String namespace, String name, + String value) { + switch (namespace) { + case NAMESPACE_SECURE: + return Settings.Secure.putString(cr, name, value); + case NAMESPACE_GLOBAL: + return Settings.Global.putString(cr, name, value); + default: + return Settings.System.putString(cr, name, value); } - Log.d(TAG, "androidSettingsPutString succeeded for " + name - + " (bundleOk=" + bundleOk + ", verified=" + verified + ")"); - return true; } /** @@ -91,18 +132,18 @@ public final class AndroidSettingsWriter { * 事务由设备框架自己生成的 Proxy 写出,事务码/布局永远和 ROM 匹配。 * 前提:android.uid.system + platform 签名。 */ - private static Bundle callSettingsPut(Context context, Bundle arg, String name) { + private static Bundle callSettingsPut(Context context, String namespace, Bundle arg, String name) { Object provider = getSettingsProvider(context); if (provider == null) { return null; } - Bundle result = invokeProviderCall(provider, arg, name); + Bundle result = invokeProviderCall(provider, namespace, arg, name); if (result == null) { // 可能 binder 已死亡,清缓存重取再试一次 sSettingsProvider = null; provider = getSettingsProvider(context); if (provider != null) { - result = invokeProviderCall(provider, arg, name); + result = invokeProviderCall(provider, namespace, arg, name); } } return result; @@ -115,12 +156,14 @@ public final class AndroidSettingsWriter { * 本 App 就是 uid 1000,enforceCallingUid 校验通过;"android" 包属于 uid 1000, * attribution 链校验也通过。旧 4 参 call 无包名槽位(会记真实包名),不用。 */ - private static Bundle invokeProviderCall(Object provider, Bundle arg, String name) { + private static Bundle invokeProviderCall(Object provider, String namespace, Bundle arg, + String name) { Object attribution = buildAndroidAttributionSource(); if (attribution == null) { - Log.e(TAG, "androidSettingsPutString: attribution source is null, abort"); + Log.e(TAG, "putString: attribution source is null, abort"); return null; } + String callMethod = "PUT_" + namespace; for (Method m : provider.getClass().getMethods()) { if (!"call".equals(m.getName())) { continue; @@ -130,20 +173,20 @@ public final class AndroidSettingsWriter { && p[0].getName().equals("android.content.AttributionSource")) { try { Bundle r = (Bundle) m.invoke(provider, attribution, SETTINGS_AUTHORITY, - CALL_METHOD_PUT_SYSTEM, name, arg); - Log.d(TAG, "androidSettingsPutString: invoked call" + callMethod, name, arg); + Log.d(TAG, "putString: invoked " + callMethod + " " + java.util.Arrays.toString(p) + " -> " + (r == null ? "null" : r.toString())); return r; } catch (Throwable t) { Throwable root = t instanceof java.lang.reflect.InvocationTargetException && t.getCause() != null ? t.getCause() : t; - Log.w(TAG, "androidSettingsPutString: provider call failed: " + root); + Log.w(TAG, "putString: provider call failed: " + root); return null; } } } - Log.w(TAG, "androidSettingsPutString: no AttributionSource call overload on " + Log.w(TAG, "putString: no AttributionSource call overload on " + provider.getClass().getName()); return null; } @@ -158,7 +201,7 @@ public final class AndroidSettingsWriter { builder.getMethod("setPackageName", String.class).invoke(b, "android"); return builder.getMethod("build").invoke(b); } catch (Throwable t) { - Log.e(TAG, "androidSettingsPutString: build AttributionSource failed: " + t); + Log.e(TAG, "putString: build AttributionSource failed: " + t); return null; } } @@ -200,7 +243,7 @@ public final class AndroidSettingsWriter { } } if (sSettingsProvider == null) { - Log.e(TAG, "androidSettingsPutString: settings provider unavailable"); + Log.e(TAG, "putString: settings provider unavailable"); } return sSettingsProvider; } @@ -237,14 +280,14 @@ public final class AndroidSettingsWriter { m.setAccessible(true); Object provider = m.invoke(cr, args); if (provider != null) { - Log.d(TAG, "androidSettingsPutString: acquired via " + m.getName() + Log.d(TAG, "putString: acquired via " + m.getName() + java.util.Arrays.toString(types) + " slots=" + combo[0] + "/" + combo[1]); return provider; } } catch (Throwable t) { Throwable root = t instanceof java.lang.reflect.InvocationTargetException && t.getCause() != null ? t.getCause() : t; - Log.w(TAG, "androidSettingsPutString: " + m.getName() + " slots=" + combo[0] + Log.w(TAG, "putString: " + m.getName() + " slots=" + combo[0] + "/" + combo[1] + " failed: " + root); } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/ForegroundAppUtil.java b/app/src/main/java/com/aoleyun/sn/utils/ForegroundAppUtil.java index 762c6c1..2f254f9 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/ForegroundAppUtil.java +++ b/app/src/main/java/com/aoleyun/sn/utils/ForegroundAppUtil.java @@ -56,8 +56,8 @@ public class ForegroundAppUtil { public static void setTopAppClass(Context context, String pkg) { if (TextUtils.isEmpty(pkg)) { - boolean always_top_packagename = Settings.System.putString(context.getContentResolver(), "always_top_packagename", "Invalid"); - boolean always_top_classname = Settings.System.putString(context.getContentResolver(), "always_top_classname", "Invalid"); + boolean always_top_packagename = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "always_top_packagename", "Invalid"); + boolean always_top_classname = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "always_top_classname", "Invalid"); Log.e(TAG, "setTopAppClass: always_top_packagename = " + always_top_packagename); Log.e(TAG, "setTopAppClass: always_top_classname = " + always_top_classname); } else { @@ -67,8 +67,8 @@ public class ForegroundAppUtil { } public static void setTopAppClass(Context context, String pkg, String ClassName) { - boolean always_top_packagename = Settings.System.putString(context.getContentResolver(), "always_top_packagename", pkg); - boolean always_top_classname = Settings.System.putString(context.getContentResolver(), "always_top_classname", ClassName); + boolean always_top_packagename = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "always_top_packagename", pkg); + boolean always_top_classname = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "always_top_classname", ClassName); Log.e(TAG, "setTopAppClass: always_top_packagename = " + always_top_packagename); Log.e(TAG, "setTopAppClass: always_top_classname = " + always_top_classname); ApkUtils.openPackage(context, pkg); diff --git a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java index 57315cc..043e5ff 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java @@ -644,11 +644,11 @@ public class JgyUtils { if (disallowSlide.size() != 0) { String slide_not = String.join(",", disallowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); + boolean writeSucceed = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not); } else { String slide_ok = String.join(",", allowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); + boolean writeSucceed = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); } @@ -664,10 +664,10 @@ public class JgyUtils { Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); if (TextUtils.isEmpty(aole_app_power_on)) { //当 aole_app_power_on 的值为空时,会造成系统所有应用断网 - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid"); } else { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); } // if (BuildConfig.DEBUG) { @@ -704,11 +704,11 @@ public class JgyUtils { if (disallowSlide.size() != 0) { String slide_not = String.join(",", disallowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); + boolean writeSucceed = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not); } else { String slide_ok = String.join(",", allowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); + boolean writeSucceed = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); } @@ -723,10 +723,10 @@ public class JgyUtils { Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); if (TextUtils.isEmpty(aole_app_power_on)) { //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid"); } else { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); } // if (BuildConfig.DEBUG) { @@ -757,11 +757,11 @@ public class JgyUtils { public void setAppSourceInstallWhiteList(HashSet allowInstallApp) { if (allowInstallApp == null || allowInstallApp.isEmpty()) { Log.e(TAG, "setAppSourceInstallWhiteList: allowInstallApp size = 0"); - Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", DEFAULT_APP_SOURCE_WHITE_LIST)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", DEFAULT_APP_SOURCE_WHITE_LIST)); } else { allowInstallApp.addAll(DEFAULT_APP_SOURCE_WHITE_LIST); List allowList = new ArrayList<>(allowInstallApp); - Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", allowList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", allowList)); } Log.e(TAG, "setAppSourceInstallWhiteList: getString = " + Settings.System.getString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST)); } @@ -830,9 +830,9 @@ public class JgyUtils { private void setDisallowNotificationPackage(Context context, HashSet pkgSet) { Log.e(TAG, "setDisallowNotificationPackage: " + pkgSet); if (pkgSet.size() == 0) { - Settings.System.putString(context.getContentResolver(), "aole_app_info", ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_info", ""); } else { - Settings.System.putString(context.getContentResolver(), "aole_app_info", String.join(",", pkgSet)); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_info", String.join(",", pkgSet)); } if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setDisallowNotification(new ArrayList<>(pkgSet)); @@ -845,9 +845,9 @@ public class JgyUtils { Set pkgSet = privilegeApp.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toSet()); Log.e(TAG, "setAllowPermissionsPackage: " + pkgSet); if (pkgSet.size() == 0) { - Settings.System.putString(crv, "aole_app_privilege", ""); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_privilege", ""); } else { - Settings.System.putString(crv, "aole_app_privilege", String.join(",", pkgSet)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_privilege", String.join(",", pkgSet)); } if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setDefaultPermissions(new ArrayList<>(pkgSet)); @@ -954,10 +954,10 @@ public class JgyUtils { whiteAppSet.addAll(ApkUtils.aoleyunAPP); Set filter = whiteAppSet.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toSet()); Log.e(TAG, "setAppNetwork: filter = " + filter); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filter)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filter)); } else { try { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow"); Log.e(TAG, "setAppNetwork: " + result); } catch (Exception e) { @@ -968,10 +968,10 @@ public class JgyUtils { if (!MTK11Tag.equals(getAppPlatform())) { if (blackList == null || blackList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, null); } else { String net_not = String.join(",", blackList); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not); Log.e(TAG, "setAppNetwork: " + net_not); } } @@ -999,13 +999,13 @@ public class JgyUtils { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { if (filterList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); } else { // TODO: 2024/10/31 需要多写一次保证数据库变化 filterList.add("com.ttstd.utils"); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); filterList.remove("com.ttstd.utils"); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); } } @@ -1027,10 +1027,10 @@ public class JgyUtils { whiteAppSet.addAll(ApkUtils.aoleyunAPP); Set filter = whiteAppSet.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toSet()); Log.e(TAG, "setAppNetwork: filter = " + filter); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filter)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filter)); } else { try { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow"); Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { @@ -1043,7 +1043,7 @@ public class JgyUtils { } else { try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list"); Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { @@ -1059,7 +1059,7 @@ public class JgyUtils { Log.e(TAG, "updateNetworkWhiteList: MT8768 Ebox201w"); } else { try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list"); Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { @@ -1084,13 +1084,13 @@ public class JgyUtils { if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { if (filterList.size() == 0) { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); } else { // TODO: 2024/10/31 需要多写一次保证数据库变化 filterList.add("com.ttstd.utils"); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); filterList.remove("com.ttstd.utils"); - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, String.join(",", filterList)); } } @@ -1129,7 +1129,7 @@ public class JgyUtils { } if (appIDList == null || appIDList.isEmpty()) { try { - Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, null); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.APP_VIEW_CLICK_DISABLED, null); // TODO: 2024/9/11 修复1.4.0907版本数据为空系统报错 CmdUtil.Result result = CmdUtil.execute(" settings delete system app_view_click_disabled"); Log.e(TAG, "writeDeselectIDtoSystem: " + result); @@ -1144,7 +1144,7 @@ public class JgyUtils { } }).collect(Collectors.joining(";")); Log.e(TAG, "writeDeselectIDtoSystem: " + s); - Settings.System.putString(crv, CommonConfig.APP_VIEW_CLICK_DISABLED, s); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.APP_VIEW_CLICK_DISABLED, s); } } @@ -1646,7 +1646,7 @@ public class JgyUtils { boolean b = androidSettingsPutString(mContext, CommonConfig.AOLE_ACTION_APP_FORBID, aole_app_forbid); Log.e("writeAppPackageList: ", "aole_app_forbid: " + b + " " + Settings.System.getString(crv, CommonConfig.AOLE_ACTION_APP_FORBID)); } catch (Exception e) { - Log.e(TAG, "writeAppPackageList: Settings.System.putString failed", e); + Log.e(TAG, "writeAppPackageList: AndroidSettingsWriter.putString failed", e); } setAppRestriction(2); addAppInstallWhiteList(new ArrayList<>(pkgSet)); @@ -1675,7 +1675,7 @@ public class JgyUtils { try { androidSettingsPutString(mContext, CommonConfig.AOLE_ACTION_APP_FORBID, aole_app_forbid); } catch (Exception e) { - Log.e(TAG, "writeAppPackageList: Settings.System.putString failed", e); + Log.e(TAG, "writeAppPackageList: AndroidSettingsWriter.putString failed", e); } } @@ -2277,20 +2277,20 @@ public class JgyUtils { if (MT8768Tag.equalsIgnoreCase(BuildConfig.platform) || G128T_TAG.equalsIgnoreCase(BuildConfig.platform) ) { - Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state); } else { //这个需要反着来 - Settings.System.putInt(crv, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state ^ 1); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, state ^ 1); } Log.e(TAG, "setDeveloperOptions: DEVELOPMENT_SETTINGS_ENABLED = " + Settings.Global.getInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0)); Log.e(TAG, "setDeveloperOptions: ADB_ENABLED = " + Settings.Global.getInt(crv, Settings.Global.ADB_ENABLED, 0)); // if (!BuildConfig.DEBUG) { if (Settings.Global.getInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != state) { - Settings.Global.putInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state); } if (Settings.Global.getInt(crv, Settings.Global.ADB_ENABLED, 0) != state) { - Settings.Global.putInt(crv, Settings.Global.ADB_ENABLED, state); + AndroidSettingsWriter.putInt(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, Settings.Global.ADB_ENABLED, state); } // } if (JgyUtils.isAllWinnerDevice()) { @@ -3748,7 +3748,7 @@ public class JgyUtils { public void setTongyiAppTop() { if (ApkUtils.isAvailable(mContext, "com.tongyi.aistudent")) { ForegroundAppUtil.setTopAppClass(mContext, "com.tongyi.aistudent"); - Settings.Global.putString(crv, ForegroundAppUtil.TOPAPP_KEY, "com.tongyi.aistudent"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_GLOBAL, ForegroundAppUtil.TOPAPP_KEY, "com.tongyi.aistudent"); ForegroundAppUtil.openTopApp(mContext); } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java index 3e376b8..e5b745d 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java @@ -187,7 +187,7 @@ public class SysSettingUtils { setSettingsMenuShow(context); setEyeProtectionModeEntrance(context, 1); if (JgyUtils.getInstance().checkAppPlatform() == JgyUtils.DX11Platform) { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, 1); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DEVELOPER_OPTIONS, 1); } } @@ -235,17 +235,17 @@ public class SysSettingUtils { private static void setPhoneList(Context context, int state) { try { //设置电话功能,电话白名单 - boolean qch_call_forbid = Settings.System.putInt(context.getContentResolver(), "qch_call_forbid", state); + boolean qch_call_forbid = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_call_forbid", state); Log.e(TAG, "qch_call_forbid:" + qch_call_forbid); - boolean aole_white_list_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_WHITE_LIST_ON, state); + boolean aole_white_list_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_WHITE_LIST_ON, state); Log.e(TAG, "aole_white_list_on:" + aole_white_list_on); - boolean aole_white_list_Array = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, ""); + boolean aole_white_list_Array = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, ""); // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+aole_white_list_Array+"---"+qch_call_forbid); Log.e(TAG, "aole_white_list_Array:" + aole_white_list_Array); - boolean aole_sdcard_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, state); + boolean aole_sdcard_forbid_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, state); Log.e(TAG, "aole_sdcard_forbid_on:" + aole_sdcard_forbid_on); } catch (Exception e) { Log.e(TAG, "setPhoneList: " + e.getMessage()); @@ -257,20 +257,20 @@ public class SysSettingUtils { //设置电话功能,电话白名单 //电话通话开关 int setting_call = changeNum(jsonObject.get("setting_call").getAsInt()); - boolean qch_call_forbid = Settings.System.putInt(context.getContentResolver(), "qch_call_forbid", setting_call); + boolean qch_call_forbid = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_call_forbid", setting_call); Log.e(TAG, "qch_call_forbid:" + qch_call_forbid); //电话白名单开关 int setting_phone = changeNum(jsonObject.get("setting_phone").getAsInt()); - boolean aole_white_list_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_WHITE_LIST_ON, setting_phone); + boolean aole_white_list_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_WHITE_LIST_ON, setting_phone); Log.e(TAG, "aole_white_list_on:" + aole_white_list_on); //白名单列表 if (setting_phone == 1) { - boolean aole_white_list_Array = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, "empty"); + boolean aole_white_list_Array = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, "empty"); // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+aole_white_list_Array+"---"+qch_call_forbid); Log.e(TAG, "aole_white_list_Array:" + aole_white_list_Array); } else { String setting_phones = jsonObject.get("setting_phones").getAsString(); - boolean aole_white_list_Array = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, setting_phones); + boolean aole_white_list_Array = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_WHITE_LIST_ARRAY, setting_phones); // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+aole_white_list_Array+"---"+qch_call_forbid); Log.e(TAG, "aole_white_list_Array:" + aole_white_list_Array + "---" + setting_phones); } @@ -304,10 +304,10 @@ public class SysSettingUtils { Log.e(TAG, "setUsbStatus: oldUsb = " + oldUsb + " no changed , skip"); return; } - boolean aole_usb_choose = Settings.System.putString(context.getContentResolver(), "aole_usb_choose", "usb_charge"); + boolean aole_usb_choose = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_usb_choose", "usb_charge"); Log.e("setUsbStatus", "aole_usb_choose: " + aole_usb_choose); } else { - boolean aole_usb_choose = Settings.System.putString(context.getContentResolver(), "aole_usb_choose", "usb_mtp"); + boolean aole_usb_choose = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_usb_choose", "usb_mtp"); Log.e("setUsbStatus", "aole_usb_choose: " + aole_usb_choose); } String usbStatus; @@ -378,7 +378,7 @@ public class SysSettingUtils { Log.e(TAG, "setUsbStatus: oldUsb = " + oldUsb + " no changed , skip"); return; } - boolean aole_usb_choose = Settings.System.putString(context.getContentResolver(), "aole_usb_choose", setting_usb); + boolean aole_usb_choose = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_usb_choose", setting_usb); Log.e("setUsbStatus", "aole_usb_choose: " + aole_usb_choose); String usbStatus; switch (setting_usb) { @@ -421,7 +421,7 @@ public class SysSettingUtils { Log.e(TAG, "setBluetoothTransmission: setting_bluetooth = " + state); int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 1); if (old_setting_bluetooth != state) { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_FORBID_ON, state); } else { Log.e(TAG, "setBluetoothTransmission: setting_bluetooth no changed"); } @@ -445,13 +445,13 @@ public class SysSettingUtils { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter.disable(); } - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHT_FORBID_ON, state); } else { Log.e(TAG, "setBluetooth: setting_bht no changed"); } if (old_setting_bluetooth != state) { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_FORBID_ON, state); } else { Log.e(TAG, "setBluetooth: setting_bluetooth no changed"); } @@ -459,7 +459,7 @@ public class SysSettingUtils { if (old_setting_bhtvideo != state) { mmkv.encode(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, state); if (state == 1) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); } } else { Log.e(TAG, "setBluetooth: setting_bhtvideo no changed"); @@ -470,7 +470,7 @@ public class SysSettingUtils { AllwinnerCubeMdmManager.getInstance().setBluetoothEnable(state == 0); } // TODO: 2026/10/14 默认不管控 - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_RENAME_ALLOW, 1); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_RENAME_ALLOW, 1); } /** @@ -494,19 +494,19 @@ public class SysSettingUtils { int setting_bluetooth_type = changeNum(getNum(jsonObject, "setting_bluetooth_type", 1)); Log.e(TAG, "setBluetooth: setting_bluetooth_type = " + setting_bluetooth_type); if (setting_bluetooth_type == 1) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); } else { String bluetooth_type_control = getStr(jsonObject, "bluetooth_type_control", ""); Log.e(TAG, "setBluetooth: bluetooth_type_control = " + bluetooth_type_control); if (TextUtils.isEmpty(bluetooth_type_control)) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); } else { Gson gson = new Gson(); Type listType = new TypeToken() { }.getType(); BluetoothType bluetoothType = gson.fromJson(bluetooth_type_control, listType); if (bluetoothType == null) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, ""); } else { List typeList = new ArrayList<>(); if (bluetoothType.getHeadset() == 1) { @@ -524,7 +524,7 @@ public class SysSettingUtils { if (bluetoothType.getKeyboard() == 1) { typeList.add(CommonConfig.AOLE_BT_KEYBOARD_KEY); } - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, String.join(",", typeList)); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, String.join(",", typeList)); } } } @@ -542,13 +542,13 @@ public class SysSettingUtils { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter.disable(); } - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, setting_bht); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHT_FORBID_ON, setting_bht); } else { Log.e(TAG, "setBluetooth: setting_bht no changed"); } if (old_setting_bluetooth != setting_bluetooth) { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, setting_bluetooth); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_FORBID_ON, setting_bluetooth); } else { Log.e(TAG, "setBluetooth: setting_bluetooth no changed"); } @@ -559,12 +559,12 @@ public class SysSettingUtils { String setting_context = getStr(jsonObject, "setting_context", ""); if (!TextUtils.isEmpty(setting_context) && !" ".equals(setting_context) && !"null".equals(setting_context)) { Log.e(TAG, "setting_context:" + setting_context); - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, setting_context); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, setting_context); } else { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); } } else if (setting_bhtvideo == 1) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, "Empty"); } } else { Log.e(TAG, "setBluetooth: setting_bhtvideo no changed"); @@ -576,7 +576,7 @@ public class SysSettingUtils { } int bt_rename = getNum(jsonObject, "bluetooth_name_change", 1); - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_RENAME_ALLOW, bt_rename); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_BT_RENAME_ALLOW, bt_rename); } @@ -591,7 +591,7 @@ public class SysSettingUtils { intent.setAction("qch_hotspot_close"); intent.setPackage("com.android.settings"); context.sendStickyBroadcast(intent); - boolean aole_hotspot_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HOTSPOT_FORBID_ON, state); + boolean aole_hotspot_forbid_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HOTSPOT_FORBID_ON, state); Log.e(TAG, "aole_hotspot_forbid_on:" + aole_hotspot_forbid_on); if (JgyUtils.isAllWinnerDevice()) { @@ -611,7 +611,7 @@ public class SysSettingUtils { intent.setPackage("com.android.settings"); context.sendStickyBroadcast(intent); } - boolean aole_hotspot_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HOTSPOT_FORBID_ON, setting_hotspot); + boolean aole_hotspot_forbid_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HOTSPOT_FORBID_ON, setting_hotspot); Log.e(TAG, "aole_hotspot_forbid_on---------" + setting_hotspot); Log.e(TAG, "aole_hotspot_forbid_on---------" + aole_hotspot_forbid_on); @@ -627,7 +627,7 @@ public class SysSettingUtils { //系统导航条显示开关 int setting_navigation = 0; //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_NavigationBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, setting_navigation); + boolean aole_hide_NavigationBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, setting_navigation); Log.e(TAG, "aole_hide_NavigationBar---------" + aole_hide_NavigationBar); String navigationStatus = ""; @@ -653,7 +653,7 @@ public class SysSettingUtils { int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); if (oldNum != setting_statusbar) { //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar); + boolean aole_hide_statusBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar); Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar); String statusbarStatus = ""; switch (setting_statusbar) { @@ -676,7 +676,7 @@ public class SysSettingUtils { int setting_navigation = changeNum(jsonObject.get("setting_navigation").getAsInt()); Log.e(TAG, "setBar: setting_navigation = " + setting_navigation); //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_NavigationBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, setting_navigation); + boolean aole_hide_NavigationBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, setting_navigation); Log.e(TAG, "aole_hide_NavigationBar---------" + aole_hide_NavigationBar); String navigationStatus = ""; @@ -707,7 +707,7 @@ public class SysSettingUtils { // int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); // if (oldNum != setting_statusbar) { //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar); + boolean aole_hide_statusBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar); Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar); String statusbarStatus = ""; switch (setting_statusbar) { @@ -732,7 +732,7 @@ public class SysSettingUtils { public static void setCamera(Context context, int state) { try { //摄像头开关 - boolean qch_app_camera = Settings.System.putInt(context.getContentResolver(), "qch_app_camera", state); + boolean qch_app_camera = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_camera", state); Log.e(TAG, "qch_app_camera1:" + state); // ApkUtils.hideSystemSettingAPP(context, "com.mediatek.camera"); Log.e(TAG, "setting_camera---------" + qch_app_camera); @@ -756,7 +756,7 @@ public class SysSettingUtils { try { //摄像头开关 int setting_camera = changeNum(jsonObject.get("setting_camera").getAsInt()); - Settings.System.putInt(context.getContentResolver(), "qch_app_camera", setting_camera); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_camera", setting_camera); Log.e(TAG, "qch_app_camera2:" + setting_camera); // ApkUtils.hideSystemSettingAPP(context, "com.mediatek.camera"); Log.e(TAG, "setting_camera---------" + setting_camera); @@ -788,13 +788,13 @@ public class SysSettingUtils { } JgyUtils.getInstance().setSDOTGEnable(state == 0); - boolean aole_sdcard_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, state); + boolean aole_sdcard_forbid_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, state); Log.e(TAG, "setTF: aole_sdcard_forbid_on = " + aole_sdcard_forbid_on); try { //tfmedia开关 // int setting_tfmedia = 1; - boolean qch_tfmedia_forbid = Settings.System.putInt(context.getContentResolver(), "qch_tfmedia_forbid", state); + boolean qch_tfmedia_forbid = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_forbid", state); Log.e(TAG, "setting_tfmedia---------" + qch_tfmedia_forbid); String tfmediaStatus = ""; switch (state) { @@ -808,10 +808,10 @@ public class SysSettingUtils { Intent tfmediaIntent = new Intent(tfmediaStatus).setPackage("com.android.settings"); context.sendBroadcast(tfmediaIntent); if (state == 1) { - boolean qch_tfmedia_filetypes = Settings.System.putString(context.getContentResolver(), "qch_tfmedia_filetypes", "Empty");//影音管控 + boolean qch_tfmedia_filetypes = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_filetypes", "Empty");//影音管控 Log.e(TAG, "qch_tfmedia_filetypes:" + qch_tfmedia_filetypes); } else { - Settings.System.putInt(context.getContentResolver(), "qch_tfmedia_forbid", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_forbid", 0); } } catch (Exception e) { Log.e(TAG, "setTF: " + e.getMessage()); @@ -831,7 +831,7 @@ public class SysSettingUtils { Log.e(TAG, "setTF: setting_memory = " + setting_memory); JgyUtils.getInstance().setSDOTGEnable(setting_memory == 0); - boolean aole_sdcard_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, setting_memory); + boolean aole_sdcard_forbid_on = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, setting_memory); Log.e(TAG, "setTF: aole_sdcard_forbid_on = " + aole_sdcard_forbid_on); try { @@ -839,7 +839,7 @@ public class SysSettingUtils { // if (JgyUtils.isOfficialVersion() ) { // setting_tfmedia = changeNum(setting_tfmedia); // } - boolean qch_tfmedia_forbid = Settings.System.putInt(context.getContentResolver(), "qch_tfmedia_forbid", setting_tfmedia); + boolean qch_tfmedia_forbid = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_forbid", setting_tfmedia); Log.e(TAG, "setting_tfmedia---------" + qch_tfmedia_forbid); String tfmediaStatus = ""; switch (setting_tfmedia) { @@ -863,10 +863,10 @@ public class SysSettingUtils { stringBuffer.append(","); } stringBuffer.deleteCharAt(stringBuffer.length() - 1); - Settings.System.putString(context.getContentResolver(), "qch_tfmedia_filetypes", stringBuffer.toString());//影音管控 + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_filetypes", stringBuffer.toString());//影音管控 Log.e(TAG, "qch_tfmedia_filetypes---------" + stringBuffer.toString()); } else { - Settings.System.putInt(context.getContentResolver(), "qch_tfmedia_forbid", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_tfmedia_forbid", 0); } } catch (Exception e) { Log.e(TAG, "setTF: " + e.getMessage()); @@ -888,13 +888,13 @@ public class SysSettingUtils { private static void setWallpaper(Context context, int state) { //壁纸 // int wallpaper = 1; - Settings.System.putInt(context.getContentResolver(), "qch_app_wallpaper", state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_wallpaper", state); Log.e(TAG, "qch_app_wallpaper" + state); } public static void setCanReset(Context context, int state) { Log.e(TAG, "setCanReset: state = " + state); - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, state); //默认打开 if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setResetFactoryEnable(state == 0); @@ -911,9 +911,9 @@ public class SysSettingUtils { int mode = jsonObject.get("qch_restore").getAsInt(); Log.e(TAG, "setCanReset: mode = " + mode); if (mode == 1) { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, 0); } else { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, 1); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, 1); } if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setResetFactoryEnable(mode == 1); @@ -1034,18 +1034,18 @@ public class SysSettingUtils { if (jsonObject.get("is_browser_network") != null) { int is_browser_network = jsonObject.get("is_browser_network").getAsInt(); Log.e(TAG, "setBrowserInput: is_browser_network = " + is_browser_network); - Settings.Global.putInt(context.getContentResolver(), "is_browser_network", is_browser_network); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "is_browser_network", is_browser_network); } if (jsonObject.get("setting_browserInput") != null) { int qch_Browser_input = jsonObject.get("setting_browserInput").getAsInt(); Log.e(TAG, "setBrowserInput: qch_Browser_input = " + qch_Browser_input); - Settings.System.putInt(context.getContentResolver(), "qch_Browser_input", qch_Browser_input); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_Browser_input", qch_Browser_input); } if (jsonObject.get("browser_down") != null) { int browser_down = jsonObject.get("browser_down").getAsInt(); - Settings.System.putInt(context.getContentResolver(), "aoleyun_browser_down", browser_down); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aoleyun_browser_down", browser_down); } } @@ -1056,9 +1056,9 @@ public class SysSettingUtils { * @param state */ private static void setBrowserInput(Context context, int state) { - Settings.System.putInt(context.getContentResolver(), "qch_Browser_input", state); - Settings.Global.putInt(context.getContentResolver(), "is_browser_network", state); - Settings.System.putInt(context.getContentResolver(), "aoleyun_browser_down", state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_Browser_input", state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "is_browser_network", state); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aoleyun_browser_down", state); } private static void setAdminApp(Context context, JsonObject jsonObject) { @@ -1066,12 +1066,12 @@ public class SysSettingUtils { if (appInstall != null) { int is_app_install = appInstall.getAsInt(); Log.e(TAG, "setAdminApp: is_app_install = " + is_app_install); - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, is_app_install); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_ALLOW_INSTALL, is_app_install); if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setInstallPackageEnable(is_app_install == 1); } } else { - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_ALLOW_INSTALL, 0); } @@ -1079,16 +1079,16 @@ public class SysSettingUtils { if (adminApp != null) { int is_admin_app = adminApp.getAsInt(); Log.e(TAG, "setAdminApp: is_admin_app = " + is_admin_app); - Settings.Global.putInt(context.getContentResolver(), "is_admin_app", is_admin_app); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "is_admin_app", is_admin_app); } else { - Settings.Global.putInt(context.getContentResolver(), "is_admin_app", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "is_admin_app", 0); } JsonElement appCategory = jsonObject.get("admin_app_category"); if (appCategory != null && !appCategory.isJsonNull()) { String admin_app_category = appCategory.getAsString(); - Settings.Global.putString(context.getContentResolver(), "admin_app_category", admin_app_category); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "admin_app_category", admin_app_category); } else { - Settings.Global.putString(context.getContentResolver(), "admin_app_category", ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "admin_app_category", ""); } } @@ -1102,58 +1102,58 @@ public class SysSettingUtils { if (JgyUtils.isAllWinnerDevice()) { AllwinnerCubeMdmManager.getInstance().setInstallPackageEnable(state == 0); } - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, changeNum(state)); - Settings.Global.putInt(context.getContentResolver(), "is_admin_app", changeNum(state)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_APP_ALLOW_INSTALL, changeNum(state)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_GLOBAL, "is_admin_app", changeNum(state)); } private static void setSystemAppDisable(Context context, JsonObject jsonObject) { JsonElement pictureCategory = jsonObject.get("setting_picture"); if (pictureCategory != null && !pictureCategory.isJsonNull()) { int setting_picture = pictureCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_gallery", changeNum(setting_picture)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_gallery", changeNum(setting_picture)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_gallery", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_gallery", 0); } JsonElement fileCategory = jsonObject.get("setting_file"); if (fileCategory != null && !fileCategory.isJsonNull()) { int setting_file = fileCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_filemanager", changeNum(setting_file)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_filemanager", changeNum(setting_file)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_filemanager", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_filemanager", 0); } JsonElement clockCategory = jsonObject.get("setting_clock"); if (clockCategory != null && !clockCategory.isJsonNull()) { int setting_clock = clockCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_deskclock", changeNum(setting_clock)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_deskclock", changeNum(setting_clock)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_deskclock", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_deskclock", 0); } JsonElement musicCategory = jsonObject.get("setting_music"); if (musicCategory != null && !musicCategory.isJsonNull()) { int setting_music = musicCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_music", changeNum(setting_music)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_music", changeNum(setting_music)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_music", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_music", 0); } JsonElement recordCategory = jsonObject.get("setting_recording"); if (recordCategory != null && !recordCategory.isJsonNull()) { int setting_recording = recordCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_soundrecorder", changeNum(setting_recording)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_soundrecorder", changeNum(setting_recording)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_soundrecorder", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_soundrecorder", 0); } JsonElement browserCategory = jsonObject.get("setting_browser"); if (browserCategory != null && !browserCategory.isJsonNull()) { int setting_browser = browserCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_browser", changeNum(setting_browser)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_browser", changeNum(setting_browser)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_browser", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_browser", 0); } Intent intent = new Intent("BrowserInternetControlKey"); @@ -1164,17 +1164,17 @@ public class SysSettingUtils { JsonElement smsCategory = jsonObject.get("setting_sms"); if (smsCategory != null && !smsCategory.isJsonNull()) { int setting_sms = smsCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "qch_app_sms", changeNum(setting_sms)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_sms", changeNum(setting_sms)); } else { - Settings.System.putInt(context.getContentResolver(), "qch_app_sms", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_sms", 0); } JsonElement calcCategory = jsonObject.get("calculator_control"); if (calcCategory != null && !calcCategory.isJsonNull()) { int calculator_control = calcCategory.getAsInt(); - Settings.System.putInt(context.getContentResolver(), "aole_app_calculator", changeNum(calculator_control)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_calculator", changeNum(calculator_control)); } else { - Settings.System.putInt(context.getContentResolver(), "aole_app_calculator", 0); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_calculator", 0); } } @@ -1183,14 +1183,14 @@ public class SysSettingUtils { * @param status 0打开 1关闭 */ private static void setSystemAppDisable(Context context, int status) { - Settings.System.putInt(context.getContentResolver(), "qch_app_gallery", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_filemanager", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_deskclock", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_music", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_soundrecorder", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_browser", status); - Settings.System.putInt(context.getContentResolver(), "qch_app_sms", status); - Settings.System.putInt(context.getContentResolver(), "aole_app_calculator", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_gallery", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_filemanager", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_deskclock", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_music", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_soundrecorder", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_browser", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_app_sms", status); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, "aole_app_calculator", status); } public static void setSnSetting(Context context, SnSetting snSetting) { @@ -1212,7 +1212,7 @@ public class SysSettingUtils { } int is_storeinstall = snSetting.getIs_storeinstall(); // TODO: 2024/10/12 待更换为 AOLEYUN_APPSTORE_INSTALL - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, is_storeinstall); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLEYUN_APPSTORE_INSTALL, is_storeinstall); int is_usb = snSetting.getIs_usb(); setUsb(context, is_usb); int is_bluetooth_file = snSetting.getIs_bluetooth_file(); @@ -1250,7 +1250,7 @@ public class SysSettingUtils { int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); if (oldNum != status) { //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, status); + boolean aole_hide_statusBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, status); Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar); String statusbarStatus = ""; switch (status) { @@ -1270,7 +1270,7 @@ public class SysSettingUtils { private static void setNavigationBar(Context context, int status) { //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 - boolean aole_hide_NavigationBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, status); + boolean aole_hide_NavigationBar = AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, status); Log.e(TAG, "aole_hide_NavigationBar---------" + aole_hide_NavigationBar); String navigationStatus = ""; @@ -1395,7 +1395,7 @@ public class SysSettingUtils { if (jsonElement != null && !jsonElement.isJsonNull()) { int camera_ctrl = jsonElement.getAsInt(); Log.e("setDisAllowCamera", "setDisAllowCamera: " + camera_ctrl); - Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_DISALLOW_CAMERA, changeNum(camera_ctrl)); + AndroidSettingsWriter.putInt(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_DISALLOW_CAMERA, changeNum(camera_ctrl)); } } @@ -1505,11 +1505,11 @@ public class SysSettingUtils { } Log.e(TAG, "setSettingsMenuShow: " + menus); - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_SETTINGS_DISALLOW, String.join(",", menus)); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_SETTINGS_DISALLOW, String.join(",", menus)); } private static void setSettingsMenuShow(Context context) { - Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_SETTINGS_DISALLOW, ""); + AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_SETTINGS_DISALLOW, ""); } private static void setEyeProtectionModeEntrance(Context context, JsonObject jsonObject) { diff --git a/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java b/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java index c56f27a..c71cc6c 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/URLUtils.java @@ -53,7 +53,7 @@ public class URLUtils { String oldWhiteIP = mMMKV.decodeString("white_ip", ""); if (TextUtils.isEmpty(oldwhiteList) && TextUtils.isEmpty(oldWhiteIP)) { Log.e(TAG, "getBrowserWhiteList: " + "oldwhiteList is empty"); - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", "Invalid"); } else { String white_ip = mMMKV.decodeString("white_ip", ""); if (!TextUtils.isEmpty(white_ip)) { @@ -68,7 +68,7 @@ public class URLUtils { URLList.removeIf(TextUtils::isEmpty); if (URLList.size() == 0 && whiteIPList.size() == 0) { Log.e(TAG, "setBrowserWhiteList: URLList set is empty , set Invalid"); - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", "Invalid"); return; } Log.e(TAG, "setBrowserWhiteList: " + URLList); @@ -118,7 +118,7 @@ public class URLUtils { } //临时 if (baseURLList.size() != 0) { - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", String.join(",", baseURLList)); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", String.join(",", baseURLList)); } Log.e(TAG, "subscribe: baseURLList: " + baseURLList); Log.e(TAG, "subscribe: DeselectBrowserArray: " + Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray")); @@ -210,7 +210,7 @@ public class URLUtils { baseURLList.removeIf(TextUtils::isEmpty); String DeselectBrowserArray = String.join(",", baseURLList); Log.e(TAG, "onComplete: " + "white list: " + DeselectBrowserArray); - boolean write = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", DeselectBrowserArray); + boolean write = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "DeselectBrowserArray", DeselectBrowserArray); Log.i(TAG, "onComplete: " + "write :" + write + " time = " + (System.currentTimeMillis() - time1)); } }); @@ -224,7 +224,7 @@ public class URLUtils { String qch_webblack_url = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url"); Log.e(TAG, "setBrowserBlackList: qch_webblack_url = " + qch_webblack_url); if (TextUtils.isEmpty(qch_webblack_url)) { - Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", "Invalid"); + AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_webblack_url", "Invalid"); } else { String black_ip = mMMKV.decodeString("black_ip", ""); if (!TextUtils.isEmpty(black_ip)) { @@ -251,7 +251,7 @@ public class URLUtils { blackList.addAll(blackIPList); blackList.removeIf(TextUtils::isEmpty); Log.e(TAG, "setBrowserBlackList: blackList: " + blackList); - boolean write = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", String.join(",", blackList)); + boolean write = AndroidSettingsWriter.putString(mContext, AndroidSettingsWriter.NAMESPACE_SYSTEM, "qch_webblack_url", String.join(",", blackList)); Log.e(TAG, "setBrowserBlackList: write: " + write); } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java index 69561bc..e3fcc00 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java @@ -1139,10 +1139,10 @@ public class Utils { } list = list.substring(0, list.length() - 1); Log.e("fht", list); - writeSucceed = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, list); + writeSucceed = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_FORBID, list); Log.e("fht", "aole_app_forbid:" + list); } else { - writeSucceed = Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, ""); + writeSucceed = AndroidSettingsWriter.putString(context, AndroidSettingsWriter.NAMESPACE_SYSTEM, CommonConfig.AOLE_ACTION_APP_FORBID, ""); } if (JgyUtils.isAllWinnerDevice()) { try {