first commit

This commit is contained in:
renjianbo
2026-01-05 15:39:47 +08:00
parent 95475bd17b
commit 74bf664ed8
54 changed files with 6094 additions and 5924 deletions

16
.idea/compiler.xml generated
View File

@@ -14,19 +14,19 @@
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar" />
</processorPath>
<module name="fuzhu.arouter_compiler" />
<module name="fuzhu.arouter_compiler.main" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="1.7">
<bytecodeTargetLevel target="1.8">
<module name="arouter_annotation" target="1.7" />
<module name="arouter_compiler" target="1.7" />
<module name="fuzhu.app" target="1.8" />
<module name="fuzhu.arouter_api" target="1.8" />
<module name="fuzhu.common" target="1.8" />
<module name="fuzhu.app" target="21" />
<module name="fuzhu.arouter_api" target="21" />
<module name="fuzhu.common" target="21" />
<module name="fuzhu.network" target="1.8" />
<module name="fuzhu.order" target="1.8" />
<module name="fuzhu.personal" target="1.8" />
<module name="fuzhu.wechat" target="1.8" />
<module name="fuzhu.order" target="21" />
<module name="fuzhu.personal" target="21" />
<module name="fuzhu.wechat" target="21" />
<module name="New_Modular_CustomARouter.app" target="1.8" />
<module name="New_Modular_CustomARouter.arouter_api" target="1.8" />
<module name="New_Modular_CustomARouter.common" target="1.8" />

9
.idea/gradle.xml generated
View File

@@ -4,11 +4,9 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="disableWrapperSourceDistributionNotification" value="true" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="11" />
<option name="gradleJvm" value="jbr-21" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
@@ -22,8 +20,7 @@
<option value="$PROJECT_DIR$/wechat" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>

2
.idea/misc.xml generated
View File

@@ -29,7 +29,7 @@
<option name="priority" value="Medium" />
<option name="excludeFilter" value="" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SuppressionsComponent">

View File

@@ -5,16 +5,21 @@ def app_android = this.getRootProject().ext.app_android;
def app_dependencies = this.rootProject.ext.app_dependencies;
android {
namespace 'com.fisherbone.fuzhu'
// compileOptions.encoding = "GBK"
compileSdk app_android.compileSdkVersion
compileSdkVersion app_android.compileSdkVersion
buildToolsVersion app_android.buildToolsVersion
defaultConfig {
applicationId app_android.applicationId
minSdk app_android.minSdkVersion
minSdkVersion app_android.minSdkVersion
targetSdk app_android.targetSdkVersion
targetSdkVersion app_android.targetSdkVersion
versionCode app_android.versionCode
versionName app_android.versionName
testInstrumentationRunner app_android.testInstrumentationRunner
multiDexEnabled true //突破应用方法数65535的一个限制
// 这个方法接收三个非空的参数第一个确定值的类型第二个指定key的名字第三个传值必须是String
// 为什么需要定义这个因为src代码中有可能需要用到跨模块交互如果是组件化模块显然不行
@@ -43,8 +48,6 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
applicationVariants.all { variant ->
variant.outputs.all {
// 输出apk名称为dc_v1.0_wandoujia.apk
@@ -69,12 +72,20 @@ android {
}
}
dataBinding {
enabled = true
buildFeatures {
buildConfig true
dataBinding true
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
@@ -84,6 +95,11 @@ this.android.sourceSets {
res.srcDirs = ['src/main/res', 'src/main/res_zxing']
}
}
configurations.all {
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
@@ -102,7 +118,7 @@ dependencies {
implementation files('lib\\XposedBridgeApi-54.jar')
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
api 'com.blankj:utilcode:1.23.7'
api 'com.blankj:utilcode:1.30.6'
api 'com.tencent.bugly:crashreport:latest.release'
// 公共基础库
implementation project(":common")
@@ -114,6 +130,9 @@ dependencies {
// arouter 专用 注解处理器
annotationProcessor project(':arouter_compiler')
// 将 Kotlin 标准库添加到注解处理器的 classpathDataBinding 编译器需要)
annotationProcessor 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
// 如果是集成化模式,做发布版本时。各个模块都不能独立运行了
if (isRelease) {
// 进if集成融为一体orderpersonal
@@ -129,5 +148,11 @@ dependencies {
}
implementation 'com.github.gzu-liyujiang:Android_CN_OAID:4.0.0'
// Kotlin 标准库DataBinding 在 AGP 8.x 中需要,版本需要与 AGP 兼容)
// 使用 compileOnly 确保在编译时可用,但不会打包到 APK 中(如果项目不使用 Kotlin
compileOnly 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
// 同时添加到 implementation 以确保运行时可用(如果 DataBinding 生成的代码需要)
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
}

Binary file not shown.

View File

@@ -71,41 +71,66 @@
android:roundIcon="@mipmap/atom_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.fisherbone.fuzhu.Main2Activity"></activity>
<activity android:name="com.fisherbone.fuzhu.MainActivityy">
<activity android:name="com.fisherbone.fuzhu.Main2Activity"
android:exported="false"></activity>
<activity android:name="com.fisherbone.fuzhu.MainActivityy"
android:exported="false">
</activity>
<activity
android:name=".activity.CancelThumbUpActivity"
android:exported="false" />
<activity android:name=".activity.HongBaoActivity"></activity>
<activity android:name=".activity.AppointActivity" />
<activity android:name=".LiveSuiJiActivity" />
<activity android:name=".LiveActivity" />
<activity android:name=".activity.ShouQuanActivity" />
<activity android:name=".activity.CancleFollowActivity" />
<activity android:name=".activity.KeyWordActivity" />
<activity android:name=".activity.KeyWordShoActivity" />
<activity android:name=".activity.KeyWordEditActivity" />
<activity android:name=".activity.InteraActivity" />
<activity android:name=".activity.DavActivity" />
<activity android:name=".activity.ScriptSettingActivity" />
<activity android:name=".activity.HongBaoActivity"
android:exported="false"></activity>
<activity android:name=".activity.AppointActivity"
android:exported="false" />
<activity android:name=".LiveSuiJiActivity"
android:exported="false" />
<activity android:name=".LiveActivity"
android:exported="false" />
<activity android:name=".activity.ShouQuanActivity"
android:exported="false" />
<activity android:name=".activity.CancleFollowActivity"
android:exported="false" />
<activity android:name=".activity.KeyWordActivity"
android:exported="false" />
<activity android:name=".activity.KeyWordShoActivity"
android:exported="false" />
<activity android:name=".activity.KeyWordEditActivity"
android:exported="false" />
<activity android:name=".activity.InteraActivity"
android:exported="false" />
<activity android:name=".activity.DavActivity"
android:exported="false" />
<activity android:name=".activity.ScriptSettingActivity"
android:exported="false" />
<activity
android:name=".activity.RecFollowActivity"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity android:name=".activity.ScrSetActivity" />
<activity android:name=".activity.SettingActivity" />
<activity android:name=".activity.PriLetActivity" />
<activity android:name=".activity.noticeActivity" />
<activity android:name=".activity.DakaActivity" />
<activity android:name=".activity.PriLetEditActivity" />
<activity android:name=".zxing.activity.CaptureActivity" /> <!-- TODO 更改状态activity,对话框样式 -->
android:windowSoftInputMode="stateAlwaysHidden"
android:exported="false" />
<activity android:name=".activity.ScrSetActivity"
android:exported="false" />
<activity android:name=".activity.SettingActivity"
android:exported="false" />
<activity android:name=".activity.PriLetActivity"
android:exported="false" />
<activity android:name=".activity.noticeActivity"
android:exported="false" />
<activity android:name=".activity.DakaActivity"
android:exported="false" />
<activity android:name=".activity.PriLetEditActivity"
android:exported="false" />
<activity android:name=".zxing.activity.CaptureActivity"
android:exported="false" /> <!-- TODO 更改状态activity,对话框样式 -->
<activity
android:name=".activity.PublishActivity"
android:theme="@style/ActivityDialog" />
<activity android:name=".PhoneActivity" />
<activity android:name=".activity.MainActivity">
android:theme="@style/ActivityDialog"
android:exported="false" />
<activity android:name=".PhoneActivity"
android:exported="false" />
<activity android:name=".activity.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -118,7 +143,8 @@
android:authorities="com.fisherbone.fuzhu.hook.AppInfoProvider"
android:exported="true" />
<receiver android:name=".BootBroadcastReceiver">
<receiver android:name=".BootBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
@@ -127,10 +153,12 @@
</receiver>
<service android:name=".TestTwoService" />
<service android:name=".TestTwoService"
android:exported="false" />
<service
android:name=".abllib.AblService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>

View File

@@ -15,6 +15,7 @@ import com.lzy.okgo.https.HttpsUtils;
import com.lzy.okgo.interceptor.HttpLoggingInterceptor;
import com.lzy.okgo.model.HttpHeaders;
import com.lzy.okgo.model.HttpParams;
import com.blankj.utilcode.util.Utils;
import com.tencent.bugly.crashreport.CrashReport;
import com.xiangxue.common.network.base.NetworkApi;
@@ -57,6 +58,10 @@ public class FuzhuApplication extends Application {
super.onCreate();
baseApplication = this;
mContext = this;
// 初始化 utilcode 工具库(必须在最前面,其他工具可能依赖它)
// Utils.init(this);
CrashReport.initCrashReport(getApplicationContext(), "e940e41c92", false);
//用户资料存储工具
ProfileSpUtils.init(this);

View File

@@ -265,15 +265,13 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
@OnClick({R.id.iv_back, R.id.rl_city, R.id.but_begin, R.id.clean_phone, R.id.open_phone, R.id.import_phone, R.id.smash_phone})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.iv_back: //返回按钮
int id = view.getId();
if (id == R.id.iv_back) { //返回按钮
// outAnimation();
break;
case R.id.rl_city: //选择城市
} else if (id == R.id.rl_city) { //选择城市
// startActivityForResult(new Intent(PhoneActivity.this, CityPickerActivity.class), REQUEST_CODE_PICK_CITY);
// overridePendingTransition(R.anim.anim_in, R.anim.anim_out);
break;
case R.id.but_begin: //生成号码段
} else if (id == R.id.but_begin) { //生成号码段
// phoneNumber.clear();
// if (city == null) { // 判断有没有选择城市
// MyToast.show(PhoneActivity.this, "未选择城市");
@@ -292,9 +290,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
// mRvAdapter = new PhoneRvAdapter(PhoneActivity.this, phoneNumber);
// mRvPhone.setAdapter(mRvAdapter);
// }
break;
case R.id.clean_phone: //导入通讯录
} else if (id == R.id.clean_phone) { //导入通讯录
phoneNumber.add("18133922190");
phoneNumber.add("18133922188");
@@ -326,15 +322,11 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
mConfirmDialog.setCancelable(true);
mConfirmDialog.show();
}
break;
case R.id.open_phone: // 打开联系人界面
Intent intent = new Intent();
intent.setClassName("com.android.contacts", "com.android.contacts.activities.PeopleActivity");
startActivity(intent);
break;
case R.id.import_phone: //清空号码段
} else if (id == R.id.open_phone) { // 打开联系人界面
Intent intent = new Intent();
intent.setClassName("com.android.contacts", "com.android.contacts.activities.PeopleActivity");
startActivity(intent);
} else if (id == R.id.import_phone) { //清空号码段
if (phoneNumber.size() == 0) {
MyToast.show(PhoneActivity.this, "号码为空");
} else {
@@ -354,8 +346,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
mConfirmDialog.setCancelable(true);
mConfirmDialog.show();
}
break;
case R.id.smash_phone: //清空通讯录
} else if (id == R.id.smash_phone) { //清空通讯录
mConfirmDialog = new ConfirmDialog(PhoneActivity.this, new Callback() {
@Override
public void Positive() {
@@ -378,10 +369,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
mConfirmDialog.setContent("提示:" + "\n是否清空通讯录");
mConfirmDialog.setCancelable(true);
mConfirmDialog.show();
break;
default:
}
}
// @Override
@@ -397,19 +385,12 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
//
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.mobile:
PrefUtils.putString(PhoneActivity.this, "phone_opera", "移动");
break;
case R.id.telecom:
PrefUtils.putString(PhoneActivity.this, "phone_opera", "电信");
break;
case R.id.unicom:
PrefUtils.putString(PhoneActivity.this, "phone_opera", "联通");
break;
default:
if (checkedId == R.id.mobile) {
PrefUtils.putString(PhoneActivity.this, "phone_opera", "移动");
} else if (checkedId == R.id.telecom) {
PrefUtils.putString(PhoneActivity.this, "phone_opera", "电信");
} else if (checkedId == R.id.unicom) {
PrefUtils.putString(PhoneActivity.this, "phone_opera", "联通");
}
}

View File

@@ -60,7 +60,8 @@ public class AblUtil {
}
} else {
ToastUtils.showShort("请先开启允许显示在其他应用上权限");
// 使用原生 Toast 替代 blankj 的 ToastUtils避免在 Activity 未完全初始化时崩溃
Toast.makeText(context, "请先开启允许显示在其他应用上权限", Toast.LENGTH_SHORT).show();
AblUtil.openDrawOverlaysAnth(context);
}
} else {

View File

@@ -22,8 +22,10 @@ import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import com.blankj.utilcode.util.ToastUtils;
import com.fisherbone.fuzhu.utils.SafeToastUtils;
import com.fisherbone.fuzhu.BaseActivity;
import com.derry.wechat.debug.BuildConfig;
import com.fisherbone.fuzhu.ChangLiang;
@@ -205,16 +207,23 @@ public class MainActivity extends BaseActivity implements InfoMessage {
AblUtil.getPermissions(MainActivity.this);
//adb shell pm grant com.fisherbone.fuzhu android.permission.WRITE_SECURE_SETTINGS
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
// Log.e("TIAOSHI###", "无障碍服务正常");
ToastUtils.showShort( "无障碍服务正常");
}else {
ToastUtils.showShort( "无障碍服务异常");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
}
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
// 延迟 Toast 显示,确保 Activity 完全初始化后再显示,使用原生 Toast 避免 blankj ToastUtils 的崩溃问题
getWindow().getDecorView().post(new Runnable() {
@Override
public void run() {
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
// Log.e("TIAOSHI###", "无障碍服务正常");
Toast.makeText(MainActivity.this, "无障碍服务正常", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this, "无障碍服务异常", Toast.LENGTH_SHORT).show();
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
}
}
});
ChangLiang.task_id = "";//当前执行任务id
ChangLiang.id = "";//当前执行任务功能id
@@ -295,7 +304,7 @@ public class MainActivity extends BaseActivity implements InfoMessage {
commentDao = new CommentDao(MainActivity.this);
redenvDao = new RedenvDao(MainActivity.this);
startTask = new StartTask(MainActivity.this, controlWindow, zhanghaoDao);
madeData();
// madeData();
EventBus.getDefault().register(this);
displayBriefMemory();
//设置公共参数
@@ -360,51 +369,39 @@ public class MainActivity extends BaseActivity implements InfoMessage {
}
@OnClickk({R.id.rl_05, R.id.rl_12, R.id.rl_011, R.id.rl_10, R.id.rl_09, R.id.rl_08, R.id.rl_07, R.id.rl_06, R.id.rl_04, R.id.rl_03, R.id.rl_01, R.id.rl_02 ,R.id.rl_16})
@OnClickk({R.id.rl_05, R.id.rl_12, R.id.rl_011, R.id.rl_10, R.id.rl_09, R.id.rl_08, R.id.rl_07, R.id.rl_06, R.id.rl_04, R.id.rl_03, R.id.rl_01, R.id.rl_02, R.id.rl_16})
public void click(View view) {
if(ProfileSpUtils.getInstance().getSetBean().isRedswitchone()){
ToastUtils.showShort( "请关闭云端控制");
SafeToastUtils.showShort(MainActivity.this, "请关闭云端控制");
return;
}
switch (view.getId()) {
case R.id.rl_05:
JumpUtils.gotoActivity(MainActivity.this, DavActivity.class, false, "", "");
break;
case R.id.rl_12:
JumpUtils.gotoActivity(MainActivity.this, HongBaoActivity.class, false, "", "");
break;
case R.id.rl_011:
JumpUtils.gotoActivity(MainActivity.this, AppointActivity.class, false, "", "");
break;
case R.id.rl_10:
JumpUtils.gotoActivity(MainActivity.this, LiveSuiJiActivity.class, false, "", "");
break;
case R.id.rl_09:
JumpUtils.gotoActivity(MainActivity.this, LiveActivity.class, false, "", "");
break;
case R.id.rl_08:
JumpUtils.gotoActivity(MainActivity.this, noticeActivity.class, false, "", "");
break;
case R.id.rl_07:
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
break;
case R.id.rl_06:
JumpUtils.gotoActivity(MainActivity.this, InteraActivity.class, false, "", "");
break;
case R.id.rl_04:
JumpUtils.gotoActivity(MainActivity.this, CancleFollowActivity.class, false, "", "");
break;
case R.id.rl_03:
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
break;
case R.id.rl_01:
JumpUtils.gotoActivity(MainActivity.this, RecFollowActivity.class, false, "", "");
// JumpUtils.gotoActivity(MainActivity.this, MainActivityy.class, false, "", "");
break;
case R.id.rl_16:
JumpUtils.gotoActivity(MainActivity.this,CancelThumbUpActivity.class, false, "", "");
break;
case R.id.rl_02:
int id = view.getId();
if (id == R.id.rl_05) {
JumpUtils.gotoActivity(MainActivity.this, DavActivity.class, false, "", "");
} else if (id == R.id.rl_12) {
JumpUtils.gotoActivity(MainActivity.this, HongBaoActivity.class, false, "", "");
} else if (id == R.id.rl_011) {
JumpUtils.gotoActivity(MainActivity.this, AppointActivity.class, false, "", "");
} else if (id == R.id.rl_10) {
JumpUtils.gotoActivity(MainActivity.this, LiveSuiJiActivity.class, false, "", "");
} else if (id == R.id.rl_09) {
JumpUtils.gotoActivity(MainActivity.this, LiveActivity.class, false, "", "");
} else if (id == R.id.rl_08) {
JumpUtils.gotoActivity(MainActivity.this, noticeActivity.class, false, "", "");
} else if (id == R.id.rl_07) {
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
} else if (id == R.id.rl_06) {
JumpUtils.gotoActivity(MainActivity.this, InteraActivity.class, false, "", "");
} else if (id == R.id.rl_04) {
JumpUtils.gotoActivity(MainActivity.this, CancleFollowActivity.class, false, "", "");
} else if (id == R.id.rl_03) {
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
} else if (id == R.id.rl_01) {
JumpUtils.gotoActivity(MainActivity.this, RecFollowActivity.class, false, "", "");
// JumpUtils.gotoActivity(MainActivity.this, MainActivityy.class, false, "", "");
} else if (id == R.id.rl_16) {
JumpUtils.gotoActivity(MainActivity.this,CancelThumbUpActivity.class, false, "", "");
} else if (id == R.id.rl_02) {
// service.stopSelf();
// CrashReport.testJavaCrash();
@@ -419,8 +416,6 @@ public class MainActivity extends BaseActivity implements InfoMessage {
.build("/wechat/W_MainActivity")
.withString("name", "杜子腾")
.navigation(this); // 组件和组件通信
break;
default:
}
}
@@ -456,7 +451,7 @@ public class MainActivity extends BaseActivity implements InfoMessage {
@Override
public void run() throws Exception {
Log.e("TIAOSHI###", "运行时间已到,停止自动加关");
ToastUtils.showLong("运行时间已到,停止自动加关");
SafeToastUtils.showLong(MainActivity.this, "运行时间已到,停止自动加关");
AblStepHandler.getInstance().setStop(true);
AblViewUtil.onMessage("停止");
@@ -550,7 +545,9 @@ public class MainActivity extends BaseActivity implements InfoMessage {
break;
case "11":
execute("16");
break;
default:
break;
}
}
}
@@ -560,8 +557,8 @@ public class MainActivity extends BaseActivity implements InfoMessage {
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
AblUtil.addSuspensionWindowView(MainActivity.this, controlWindow.initWindowView(s));
} else {
ToastUtils.showShort("点到了");
ToastUtils.showShort("请先开启辅助服务");
SafeToastUtils.showShort(MainActivity.this, "点到了");
SafeToastUtils.showShort(MainActivity.this, "请先开启辅助服务");
AblUtil.openAccessibilitySettings();
}
}

View File

@@ -100,13 +100,13 @@ public class SettingActivity extends BaseActivity {
douyinDao = new DouyinDao(SettingActivity.this);
InjectUtils.injectEvent(this);
if (ChangLiang.control_status.equals("1") && ProfileSpUtils.getInstance().getSetBean().isRedswitchone()) {
binding.setSwitch1.setChecked(true);
binding.switchMsgNotification.setChecked(true);
} else {
binding.setSwitch1.setChecked(false);
binding.switchMsgNotification.setChecked(false);
}
binding.tvVewsion.setText("v." + getVersionn());
// 添加监听
binding.setSwitch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
binding.switchMsgNotification.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
@@ -270,8 +270,8 @@ public class SettingActivity extends BaseActivity {
@OnClickk({R.id.rl_env})
public void click(View view) {
switch (view.getId()) {
case R.id.rl_env:
int id = view.getId();
if (id == R.id.rl_env) {
ArrayList<DouyinBean> douyinBeans = douyinDao.queryAll();
douyinDao.delete(douyinBeans);
if (AblUtil.isAccessibilityServiceOpen(SettingActivity.this)) {
@@ -280,9 +280,6 @@ public class SettingActivity extends BaseActivity {
} else {
ToastUtils.showShort("请先开启辅助服务)))))))");
}
break;
default:
}
}

View File

@@ -189,7 +189,7 @@ public class TestAblStep2 extends BaseAblStep {
Rect rect = new Rect();
if (child2 != null) {
child2.getBoundsInScreen(rect);
if (rect.top >= 253 && rect.bottom <= 404) {
if (rect.top >= 253 && rect.bottom <= 409) {
Log.e("TIAOSHI###", "----fourNode:" + child2.getClassName() + ":" + child2.getText() + ":" + child2.getContentDescription());
if ("android.widget.TextView".equals(child2.getClassName())) {
if (child2.getText() != null) {

View File

@@ -0,0 +1,76 @@
package com.fisherbone.fuzhu.utils;
import android.content.Context;
import android.widget.Toast;
/**
* 安全的 Toast 工具类,用于替代 blankj 的 ToastUtils
* 避免在 Application 上下文中使用 Toast 时出现 NullPointerException
*/
public class SafeToastUtils {
private static Toast lastToast;
/**
* 显示短时 Toast
*/
public static void showShort(Context context, CharSequence text) {
if (context == null || text == null) {
return;
}
// 取消之前的 Toast
if (lastToast != null) {
lastToast.cancel();
}
// 使用原生 Toast确保使用 Activity 上下文
lastToast = Toast.makeText(context.getApplicationContext(), text, Toast.LENGTH_SHORT);
lastToast.show();
}
/**
* 显示短时 Toast使用字符串资源 ID
*/
public static void showShort(Context context, int resId) {
if (context == null) {
return;
}
showShort(context, context.getString(resId));
}
/**
* 显示长时 Toast
*/
public static void showLong(Context context, CharSequence text) {
if (context == null || text == null) {
return;
}
// 取消之前的 Toast
if (lastToast != null) {
lastToast.cancel();
}
// 使用原生 Toast确保使用 Activity 上下文
lastToast = Toast.makeText(context.getApplicationContext(), text, Toast.LENGTH_LONG);
lastToast.show();
}
/**
* 显示长时 Toast使用字符串资源 ID
*/
public static void showLong(Context context, int resId) {
if (context == null) {
return;
}
showLong(context, context.getString(resId));
}
/**
* 取消当前显示的 Toast
*/
public static void cancel() {
if (lastToast != null) {
lastToast.cancel();
lastToast = null;
}
}
}

View File

@@ -53,17 +53,13 @@ public class ConfirmDialog extends Dialog implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.dialog_confirm_cancle:
callback.Negative();
this.cancel();
break;
case R.id.dialog_confirm_sure:
callback.Positive();
this.cancel();
break;
default:
int id = v.getId();
if (id == R.id.dialog_confirm_cancle) {
callback.Negative();
this.cancel();
} else if (id == R.id.dialog_confirm_sure) {
callback.Positive();
this.cancel();
}
}

View File

@@ -109,32 +109,28 @@ public class TitleBar extends RelativeLayout implements View.OnClickListener {
@Override
public void onClick(View view) {
switch (view.getId()) {
//左边按钮
case R.id.iv_left_btn:
if (null != mListener) {
mListener.onLeftButtonClick(view);
}
if (null != mAllClickListener) {
mAllClickListener.onLeftButtonClick(view);
}
break;
int id = view.getId();
//左边按钮
if (id == R.id.iv_left_btn) {
if (null != mListener) {
mListener.onLeftButtonClick(view);
}
if (null != mAllClickListener) {
mAllClickListener.onLeftButtonClick(view);
}
} else if (id == R.id.iv_right_btn) {
//右边按钮
case R.id.iv_right_btn:
if (null != mListener) {
mListener.onRightButtonClick(view);
}
if (null != mAllClickListener) {
mAllClickListener.onRightButtonClick(view);
}
break;
if (null != mListener) {
mListener.onRightButtonClick(view);
}
if (null != mAllClickListener) {
mAllClickListener.onRightButtonClick(view);
}
} else if (id == R.id.tv_right_text) {
//右边文本按钮
case R.id.tv_right_text:
if (null != mAllClickListener) {
mAllClickListener.onRightTextButtonClick(view);
}
break;
default:
if (null != mAllClickListener) {
mAllClickListener.onRightTextButtonClick(view);
}
}
}

View File

@@ -347,12 +347,9 @@ public class CaptureActivity extends BaseActivity implements Callback, View.OnCl
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.btn_back:
finish();
break;
int id = v.getId();
if (id == R.id.btn_back) {
finish();
}
}
}

View File

@@ -66,20 +66,18 @@ public final class CaptureActivityHandler extends Handler {
@Override
public void handleMessage(Message message) {
switch (message.what) {
case R.id.auto_focus:
int what = message.what;
if (what == R.id.auto_focus) {
//Log.d(TAG, "Got auto-focus message");
// When one auto focus pass finishes, start another. This is the closest thing to
// continuous AF. It does seem to hunt a bit, but I'm not sure what else to do.
if (state == State.PREVIEW) {
CameraManager.get().requestAutoFocus(this, R.id.auto_focus);
}
break;
case R.id.restart_preview:
} else if (what == R.id.restart_preview) {
Log.d(TAG, "Got restart preview message");
restartPreviewAndDecode();
break;
case R.id.decode_succeeded:
} else if (what == R.id.decode_succeeded) {
Log.d(TAG, "Got decode succeeded message");
state = State.SUCCESS;
Bundle bundle = message.getData();
@@ -90,25 +88,20 @@ public final class CaptureActivityHandler extends Handler {
activity.handleDecode((Result) message.obj, barcode);//<2F><><EFBFBD>ؽ<EFBFBD><D8BD>
/***********************************************************************/
break;
case R.id.decode_failed:
} else if (what == R.id.decode_failed) {
// We're decoding as fast as possible, so when one decode fails, start another.
state = State.PREVIEW;
CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode);
break;
case R.id.return_scan_result:
} else if (what == R.id.return_scan_result) {
Log.d(TAG, "Got return scan result message");
activity.setResult(Activity.RESULT_OK, (Intent) message.obj);
activity.finish();
break;
case R.id.launch_product_query:
} else if (what == R.id.launch_product_query) {
Log.d(TAG, "Got product query message");
String url = (String) message.obj;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
activity.startActivity(intent);
break;
default:
}
}

View File

@@ -51,15 +51,12 @@ final class DecodeHandler extends Handler {
@Override
public void handleMessage(Message message) {
switch (message.what) {
case R.id.decode:
int what = message.what;
if (what == R.id.decode) {
//Log.d(TAG, "Got decode message");
decode((byte[]) message.obj, message.arg1, message.arg2);
break;
case R.id.quit:
} else if (what == R.id.quit) {
Looper.myLooper().quit();
break;
default:
}
}

View File

@@ -53,14 +53,13 @@
<Switch
android:id="@+id/set_switch1"
android:id="@+id/switchMsgNotification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="26dp"
android:layout_marginBottom="7dp"
android:switchMinWidth="20dp"
android:textOff="off"
android:textOn="on"

View File

@@ -7,11 +7,11 @@ ext {
packageNameForAPT = "com.fisherbone.fuzhu";
app_android = [
compileSdkVersion : 29,
buildToolsVersion : "29.0.3",
compileSdkVersion : 34,
buildToolsVersion : "30.0.2",
applicationId : "com.fisherbone.fuzhu",
minSdkVersion : 24,
targetSdkVersion : 29,
minSdkVersion : 26,
targetSdkVersion : 34,
versionCode : 182,
versionName : "1.8.2",
testInstrumentationRunner: "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -10,5 +10,5 @@ tasks.withType(JavaCompile) {
}
sourceCompatibility = "7"
targetCompatibility = "7"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

View File

@@ -1,18 +1,27 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
namespace 'com.xiangxue.arouter_api'
compileSdk 34
compileSdkVersion 34
buildToolsVersion "30.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 29
minSdk 26
minSdkVersion 26
targetSdk 34
targetSdkVersion 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false

View File

@@ -20,5 +20,5 @@ tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
sourceCompatibility = "7"
targetCompatibility = "7"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

View File

@@ -1 +0,0 @@
o/jetified-arouter_compiler.jar

View File

@@ -1,12 +0,0 @@
com/xiangxue/arouter_compiler/utils/ProcessorConfig.java
com.xiangxue.arouter_compiler.utils.ProcessorConfig
com/xiangxue/arouter_compiler/ARouterProcessor.java
com.xiangxue.arouter_compiler.ARouterProcessor
com/xiangxue/arouter_compiler/ParameterProcessor.java
com.xiangxue.arouter_compiler.ParameterProcessor
com/xiangxue/arouter_compiler/utils/ProcessorUtils.java
com.xiangxue.arouter_compiler.utils.ProcessorUtils
com/xiangxue/arouter_compiler/ParameterFactory.java
com.xiangxue.arouter_compiler.ParameterFactory
com.xiangxue.arouter_compiler.ParameterFactory$1
com.xiangxue.arouter_compiler.ParameterFactory$Builder

View File

@@ -4,25 +4,57 @@
apply from : "app_config.gradle"
buildscript {
ext.kotlin_version = '1.3.72'
ext {
agp_version = '8.7.3'
}
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/public' }//jcenter
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }//gradle-plugin
maven { url 'https://maven.aliyun.com/repository/central' }//central
maven { url 'https://maven.aliyun.com/repository/google' }//google
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.android.tools.build:gradle:$agp_version"
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.6"
// Kotlin 标准库DataBinding 编译器在 AGP 8.x 中需要)
classpath 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/public' }//jcenter
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }//gradle-plugin
maven { url 'https://maven.aliyun.com/repository/central' }//central
maven { url 'https://maven.aliyun.com/repository/google' }//google
flatDir {
dirs 'libs'
}
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url "https://jitpack.io"}
maven { url "https://www.jitpack.io" }
// maven { url 'https://dl.bintray.com/aweme-open-sdk-team/public' }
}
}

View File

@@ -1,14 +1,23 @@
apply plugin: 'com.android.library'
android {
namespace 'com.xiangxue.common'
compileSdk app_android.compileSdkVersion
compileSdkVersion app_android.compileSdkVersion
buildToolsVersion app_android.buildToolsVersion
defaultConfig {
minSdk app_android.minSdkVersion
minSdkVersion app_android.minSdkVersion
targetSdk app_android.targetSdkVersion
targetSdkVersion app_android.targetSdkVersion
consumerProguardFiles 'consumer-rules.pro'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
@@ -39,7 +48,11 @@ dependencies {
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// 因为每一个 子Module都依赖了 common所有当我们在 common中依赖 arouter_api柱状
// 因为每一个 "子Module"都依赖了 common所有当我们在 common中依赖 arouter_api柱状
// 就等于 全部都依赖了 arouter_api
api project(":arouter_api")
// Kotlin 标准库DataBinding 在 AGP 8.x 中需要,参考 android-im 的做法)
// 使用 api 让所有依赖 common 的模块都能获得 Kotlin 标准库
api 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
}

View File

@@ -17,4 +17,12 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
android.nonTransitiveRClass=true
# 使资源 ID 恢复为编译时常量AGP 8.x 需要)
android.nonFinalResIds=false
# Suppress deprecation warnings for Java 8 source/target
android.javaCompile.suppressSourceTargetDeprecationWarning=true
# Use the JDK from Android Studio (uncomment and set path if needed)
# org.gradle.java.home=C:/Program Files/Android/Android Studio/jbr

View File

@@ -1,6 +1,6 @@
#Mon Dec 13 11:44:16 CST 2021
#Tue Nov 11 10:04:16 CST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

View File

@@ -5,6 +5,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
}
android {
namespace 'com.fisherbone.fuzhu.order'
compileSdk app_android.compileSdkVersion
compileSdkVersion app_android.compileSdkVersion
buildToolsVersion app_android.buildToolsVersion
defaultConfig {
@@ -13,7 +15,9 @@ android {
applicationId app_appid.order // 组件化模式能独立运行才能有applicationId
}
minSdk app_android.minSdkVersion
minSdkVersion app_android.minSdkVersion
targetSdk app_android.targetSdkVersion
targetSdkVersion app_android.targetSdkVersion
versionCode app_android.versionCode
versionName app_android.versionName
@@ -63,6 +67,15 @@ android {
}
}
}
buildFeatures {
buildConfig true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {

View File

@@ -10,7 +10,8 @@
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.fisherbone.fuzhu.order.Order_MainActivity">
<activity android:name="com.fisherbone.fuzhu.order.Order_MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -18,7 +19,8 @@
</intent-filter>
</activity>
<activity android:name="com.fisherbone.fuzhu.order.debug.Order_DebugActivity" />
<activity android:name="com.fisherbone.fuzhu.order.debug.Order_DebugActivity"
android:exported="false" />
</application>

View File

@@ -5,6 +5,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
}
android {
namespace 'com.fisherbone.fuzhu.personal'
compileSdk app_android.compileSdkVersion
compileSdkVersion app_android.compileSdkVersion
buildToolsVersion app_android.buildToolsVersion
defaultConfig {
@@ -13,7 +15,9 @@ android {
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
}
minSdk app_android.minSdkVersion
minSdkVersion app_android.minSdkVersion
targetSdk app_android.targetSdkVersion
targetSdkVersion app_android.targetSdkVersion
versionCode app_android.versionCode
versionName app_android.versionName
@@ -58,6 +62,15 @@ android {
}
}
}
buildFeatures {
buildConfig true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {

View File

@@ -9,15 +9,18 @@
android:roundIcon="@mipmap/atom_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.fisherbone.fuzhu.personal.Personal_Main2Activity"></activity>
<activity android:name="com.fisherbone.fuzhu.personal.Personal_MainActivity">
<activity android:name="com.fisherbone.fuzhu.personal.Personal_Main2Activity"
android:exported="false"></activity>
<activity android:name="com.fisherbone.fuzhu.personal.Personal_MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.fisherbone.fuzhu.personal.debug.Personal_DebugActivity" />
<activity android:name="com.fisherbone.fuzhu.personal.debug.Personal_DebugActivity"
android:exported="false" />
</application>
</manifest>

View File

@@ -7,6 +7,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
// 完整的方式 性能
android {
namespace 'com.derry.wechat'
compileSdk app_android.compileSdkVersion
compileSdkVersion app_android.compileSdkVersion
buildToolsVersion app_android.buildToolsVersion
@@ -16,7 +18,9 @@ android {
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
}
minSdk app_android.minSdkVersion
minSdkVersion app_android.minSdkVersion
targetSdk app_android.targetSdkVersion
targetSdkVersion app_android.targetSdkVersion
versionCode app_android.versionCode
versionName app_android.versionName
@@ -59,6 +63,11 @@ android {
}
}
}
buildFeatures {
buildConfig true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -97,5 +106,5 @@ dependencies {
implementation 'com.getbase:floatingactionbutton:1.9.0'
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
api 'com.blankj:utilcode:1.23.7'
api 'com.blankj:utilcode:1.30.6'
}

View File

@@ -62,7 +62,6 @@
tools:ignore="ProtectedPermissions" />
<application
android:name="com.xiangxue.common.base.BaseApplication"
android:allowBackup="true"
android:icon="@mipmap/atom_logo"
android:label="@string/app_name"
@@ -71,19 +70,22 @@
android:enabled="true"
android:theme="@style/Theme.Design.NoActionBar">
<activity android:name=".Activity.W_MainActivity"
android:exported="true">
android:exported="false">
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
</activity>
<activity android:name=".Activity.WeChatPlate"/>
<activity android:name=".Activity.WeChatChannelActivity"/>
<activity android:name=".Activity.WeChatPlate"
android:exported="false"/>
<activity android:name=".Activity.WeChatChannelActivity"
android:exported="false"/>
<service
android:name=".abllib.AblService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true">
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>

View File

@@ -54,17 +54,17 @@ public class Login_DebugActivity extends AppCompatActivity {
AblUtil.getPermissions(Login_DebugActivity.this);
//adb shell pm grant com.derry.wechat.debug android.permission.WRITE_SECURE_SETTINGS
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
// Settings.Secure.putString(getContentResolver(),
// Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
// Settings.Secure.putString(getContentResolver(),
// Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
// Log.e("TIAOSHI###", "无障碍服务正常");
ToastUtils.showShort( "无障碍服务正常");
}else {
ToastUtils.showShort( "无障碍服务异常");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
}
/**
* 底部导航栏