This commit is contained in:
renjianbo
2026-01-06 10:32:14 +08:00
parent 74bf664ed8
commit 73f866ca5b
48 changed files with 6301 additions and 3186 deletions

View File

@@ -1,17 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.derry.wechat">
xmlns:tools="http://schemas.android.com/tools">
<uses-feature android:name="android.hardware.camera.autofocus" />
<!-- 权限声明(去重后) -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission
android:name="android.permission.INJECT_EVENTS"
tools:ignore="ProtectedPermissions" />
@@ -19,46 +22,25 @@
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 读取手机通讯录 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入手机通讯录 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<!-- 下载权限 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 腾讯bugly权限 -->
<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- Bugly升级SDK权限配置开始 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 二维码扫描 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 震动权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 摄像头权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 读取联系人权限,上传联系人需要用到此权限 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 网络权限,加载网络网页需要联网 -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 精确定位权限,允许一个程序访问精确位置(GPS定位) -->
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<application
@@ -85,7 +67,7 @@
android:name=".abllib.AblService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true"
android:exported="true">
android:exported="false">
<intent-filter android:priority="1000">
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
@@ -95,4 +77,4 @@
</service>
</application>
</manifest>
</manifest>

View File

@@ -1,104 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.derry.wechat.debug">
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission
android:name="android.permission.INJECT_EVENTS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 读取手机通讯录 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入手机通讯录 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<!-- 下载权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 腾讯bugly权限 -->
<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- Bugly升级SDK权限配置开始 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 二维码扫描 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 震动权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 摄像头权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 读取联系人权限,上传联系人需要用到此权限 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 网络权限,加载网络网页需要联网 -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 精确定位权限,允许一个程序访问精确位置(GPS定位) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<application
android:name="com.xiangxue.common.base.BaseApplication"
android:allowBackup="true"
android:icon="@drawable/wechat"
android:label="@string/app_name"
android:largeHeap="true"
android:enabled="true"
android:roundIcon="@drawable/wechat"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/Theme.Design.NoActionBar">
<activity
android:name="com.derry.wechat.Activity.WeChatChannelActivity"
android:exported="false" />
<activity android:name="com.derry.wechat.Activity.WeChatPlate"
android:exported="true"/>
<activity android:name=".Login_DebugActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.derry.wechat.abllib.AblService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true">
<intent-filter android:priority="1000">
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/abl_service" />
</service>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature android:name="android.hardware.camera.autofocus" />
<!-- 权限声明(去重后) -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission
android:name="android.permission.INJECT_EVENTS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<application
android:name="com.xiangxue.common.base.BaseApplication"
android:allowBackup="true"
android:icon="@drawable/wechat"
android:label="@string/app_name"
android:largeHeap="true"
android:enabled="true"
android:roundIcon="@drawable/wechat"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/Theme.Design.NoActionBar">
<activity
android:name="com.derry.wechat.Activity.WeChatChannelActivity"
android:exported="false" />
<activity android:name="com.derry.wechat.Activity.WeChatPlate"
android:exported="true"/>
<activity android:name="com.derry.wechat.debug.Login_DebugActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.derry.wechat.abllib.AblService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true"
android:exported="false">
<intent-filter android:priority="1000">
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/abl_service" />
</service>
</application>
</manifest>

View File

@@ -1,128 +1,128 @@
package com.derry.wechat.Activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.PopupWindow;
import androidx.appcompat.app.AppCompatActivity;
import com.blankj.utilcode.util.ToastUtils;
import com.derry.wechat.steps.TestAblStep1;
import com.derry.wechat.abllib.AblConfig;
import com.derry.wechat.abllib.AblService;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.abllib.AblSteps;
import com.derry.wechat.abllib.utils.AblUtil;
import com.derry.wechat.debug.R;
import com.derry.wechat.steps.TestAblStep2;
import com.xiangxue.arouter_annotation.ARouter;
import io.reactivex.disposables.Disposable;
/**
* xiaoading
* @author Administrator
* DYX 2021-12-2
*/
@ARouter(path = "/wechat/W_MainActivity")
public class W_MainActivity extends AppCompatActivity {
public static String APP_PACKAGE_NAME = "com.tencent.mm";
private PopupWindow mPopCut;
private Disposable mdDisposable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.w_activity_main);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
AblConfig.Builder()
.setMonitoringPackageNames("com.tencent.mm")//微信包
.setLogTag("DDD")//logtag,不设置默认是abllib
.setStepMsgDelayMillis(3000)//步骤延迟时间
.setFindViewMillisInFuture(10000)//寻找界面超时时间
.setFindViewCountDownInterval(200)//寻找界面间隔时间
.build().init();
AblStepHandler.getInstance().initStepClass(new TestAblStep1() , new TestAblStep2());
AblUtil.getPermissions(W_MainActivity.this);
//adb shell pm grant com.derry.wechat android.permission.WRITE_SECURE_SETTINGS
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat/com.derry.wechat.abllib.AblService");
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
// Log.e("TIAOSHI###", "无障碍服务正常");
ToastUtils.showShort( "无障碍服务正常");
}else {
ToastUtils.showShort( "无障碍服务异常");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat/com.derry.wechat.abllib.AblService");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
}
/**
* 底部导航栏
*/
Button mBtnCut = findViewById(R.id.cut);
mBtnCut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
mPopCut.setTouchable(true);
mPopCut.setFocusable(true);
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
}
});
/**
* 菜单
*/
Button mBtnRecommend = findViewById(R.id.recommed);
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(W_MainActivity.this, WeChatPlate.class);
startActivity(intent);
}
});
Button mBtnChannel = findViewById(R.id.channel);
mBtnChannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(W_MainActivity.this,WeChatChannelActivity.class);
startActivity(intent);
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
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表示开启
if (mdDisposable != null) {
mdDisposable.dispose();
}
}
}
package com.derry.wechat.Activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.PopupWindow;
import androidx.appcompat.app.AppCompatActivity;
import com.blankj.utilcode.util.ToastUtils;
import com.derry.wechat.steps.TestAblStep1;
import com.derry.wechat.abllib.AblConfig;
import com.derry.wechat.abllib.AblService;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.abllib.AblSteps;
import com.derry.wechat.abllib.utils.AblUtil;
import com.derry.wechat.R;
import com.derry.wechat.steps.TestAblStep2;
import com.xiangxue.arouter_annotation.ARouter;
import io.reactivex.disposables.Disposable;
/**
* xiaoading
* @author Administrator
* DYX 2021-12-2
*/
@ARouter(path = "/wechat/W_MainActivity")
public class W_MainActivity extends AppCompatActivity {
public static String APP_PACKAGE_NAME = "com.tencent.mm";
private PopupWindow mPopCut;
private Disposable mdDisposable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.w_activity_main);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
AblConfig.Builder()
.setMonitoringPackageNames("com.tencent.mm")//微信包
.setLogTag("DDD")//logtag,不设置默认是abllib
.setStepMsgDelayMillis(3000)//步骤延迟时间
.setFindViewMillisInFuture(10000)//寻找界面超时时间
.setFindViewCountDownInterval(200)//寻找界面间隔时间
.build().init();
AblStepHandler.getInstance().initStepClass(new TestAblStep1() , new TestAblStep2());
AblUtil.getPermissions(W_MainActivity.this);
//adb shell pm grant com.derry.wechat android.permission.WRITE_SECURE_SETTINGS
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat/com.derry.wechat.abllib.AblService");
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
// Log.e("TIAOSHI###", "无障碍服务正常");
ToastUtils.showShort( "无障碍服务正常");
}else {
ToastUtils.showShort( "无障碍服务异常");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat/com.derry.wechat.abllib.AblService");
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
}
/**
* 底部导航栏
*/
Button mBtnCut = findViewById(R.id.cut);
mBtnCut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
mPopCut.setTouchable(true);
mPopCut.setFocusable(true);
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
}
});
/**
* 菜单
*/
Button mBtnRecommend = findViewById(R.id.recommed);
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(W_MainActivity.this, WeChatPlate.class);
startActivity(intent);
}
});
Button mBtnChannel = findViewById(R.id.channel);
mBtnChannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(W_MainActivity.this,WeChatChannelActivity.class);
startActivity(intent);
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
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表示开启
if (mdDisposable != null) {
mdDisposable.dispose();
}
}
}

View File

@@ -1,89 +1,89 @@
package com.derry.wechat.Activity;
import static com.derry.wechat.Activity.W_MainActivity.APP_PACKAGE_NAME;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.abllib.AblSteps;
import com.derry.wechat.abllib.utils.AblUtil;
import com.derry.wechat.abllib.utils.AblViewUtil;
import com.derry.wechat.debug.R;
/**
* @author Administrator
* Dyx 2021-12-2
*/
public class WeChatChannelActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_we_chat_channel);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
WeChatControlWindow weChatControlWindow = new WeChatControlWindow(WeChatChannelActivity.this);
Button mBtnChannelStart = findViewById(R.id.wechat_channel_start);
mBtnChannelStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(WeChatChannelActivity.this)) {
AblStepHandler.getInstance().setStop(false);
//AblUtil.addSuspensionWindowView(WeChatChannelActivity.this,weChatControlWindow.initWindowView());
launchapp(WeChatChannelActivity.this);
AblViewUtil.mySleep(5);
AblStepHandler.sendMsg(AblSteps.STEP_10);
} else {
AblUtil.openAccessibilitySettings();
//ToastUtils.showShort("请先开启辅助服务");
}
}
});
}
//跳转页面的方法
private void launchapp(Context context) {
//判断当前手机是否有要跳入的app
if (isAppInstalled(context)){
//如果有根据包名跳转
context.startActivity(context.getPackageManager().getLaunchIntentForPackage(APP_PACKAGE_NAME));
}else{
//如果没有,走进入系统商店找到这款APP,提示你去下载这款APP的程序
goToMarket(context);
}
}
//这里是进入应用商店,下载指定APP的方法。
private void goToMarket(Context context) {
Uri uri = Uri.parse("market://details?id=" + W_MainActivity.APP_PACKAGE_NAME);
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (Exception e) {
e.printStackTrace();
}
}
//这里是判断APP中是否有相应APP的方法
private boolean isAppInstalled(Context context) {
try {
context.getPackageManager().getPackageInfo(W_MainActivity.APP_PACKAGE_NAME,0);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
package com.derry.wechat.Activity;
import static com.derry.wechat.Activity.W_MainActivity.APP_PACKAGE_NAME;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.abllib.AblSteps;
import com.derry.wechat.abllib.utils.AblUtil;
import com.derry.wechat.abllib.utils.AblViewUtil;
import com.derry.wechat.R;
/**
* @author Administrator
* Dyx 2021-12-2
*/
public class WeChatChannelActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_we_chat_channel);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
WeChatControlWindow weChatControlWindow = new WeChatControlWindow(WeChatChannelActivity.this);
Button mBtnChannelStart = findViewById(R.id.wechat_channel_start);
mBtnChannelStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(WeChatChannelActivity.this)) {
AblStepHandler.getInstance().setStop(false);
//AblUtil.addSuspensionWindowView(WeChatChannelActivity.this,weChatControlWindow.initWindowView());
launchapp(WeChatChannelActivity.this);
AblViewUtil.mySleep(5);
AblStepHandler.sendMsg(AblSteps.STEP_10);
} else {
AblUtil.openAccessibilitySettings();
//ToastUtils.showShort("请先开启辅助服务");
}
}
});
}
//跳转页面的方法
private void launchapp(Context context) {
//判断当前手机是否有要跳入的app
if (isAppInstalled(context)){
//如果有根据包名跳转
context.startActivity(context.getPackageManager().getLaunchIntentForPackage(APP_PACKAGE_NAME));
}else{
//如果没有,走进入系统商店找到这款APP,提示你去下载这款APP的程序
goToMarket(context);
}
}
//这里是进入应用商店,下载指定APP的方法。
private void goToMarket(Context context) {
Uri uri = Uri.parse("market://details?id=" + W_MainActivity.APP_PACKAGE_NAME);
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (Exception e) {
e.printStackTrace();
}
}
//这里是判断APP中是否有相应APP的方法
private boolean isAppInstalled(Context context) {
try {
context.getPackageManager().getPackageInfo(W_MainActivity.APP_PACKAGE_NAME,0);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}

View File

@@ -1,65 +1,65 @@
package com.derry.wechat.Activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import com.derry.wechat.abllib.AblService;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.debug.R;
/**
* @author Administrator
* DYX 2021-12-3
*/
public class WeChatControlWindow {
Context mContext;
public WeChatControlWindow (Context mContext){
this.mContext=mContext;
}
public View initWindowView(){//悬浮窗
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
View view = View.inflate(mContext, R.layout.view_test_w, null);
// view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
// AblStepHandler.getInstance().setStop(false);
// AblStepHandler.sendMsg(AblSteps.STEP_1);
// } else {
// ToastUtils.showShort("请先开启辅助服务");
// }
// }
// });
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
windowManager.removeView(view);
}
});
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
@SuppressLint("ObsoleteSdkInt")
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AblService.getInstance().disableSelf();
}
}
});
return view;
}
}
package com.derry.wechat.Activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import com.derry.wechat.abllib.AblService;
import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.R;
/**
* @author Administrator
* DYX 2021-12-3
*/
public class WeChatControlWindow {
Context mContext;
public WeChatControlWindow (Context mContext){
this.mContext=mContext;
}
public View initWindowView(){//悬浮窗
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
View view = View.inflate(mContext, R.layout.view_test_w, null);
// view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
// AblStepHandler.getInstance().setStop(false);
// AblStepHandler.sendMsg(AblSteps.STEP_1);
// } else {
// ToastUtils.showShort("请先开启辅助服务");
// }
// }
// });
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
windowManager.removeView(view);
}
});
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
@SuppressLint("ObsoleteSdkInt")
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AblService.getInstance().disableSelf();
}
}
});
return view;
}
}

View File

@@ -1,30 +1,30 @@
package com.derry.wechat.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.derry.wechat.debug.R;
/**
* @author Administrator
*/
public class WeChatPlate extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_wechatplate);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}
package com.derry.wechat.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.derry.wechat.R;
/**
* @author Administrator
*/
public class WeChatPlate extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_wechatplate);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}

View File

@@ -26,6 +26,7 @@ import com.derry.wechat.abllib.AblStepHandler;
import com.derry.wechat.abllib.AblSteps;
import com.derry.wechat.abllib.utils.AblUtil;
import com.derry.wechat.steps.TestAblStep2;
import com.derry.wechat.R;
/**