version:1.6.9

fix:
update:优化无障碍
This commit is contained in:
2025-07-28 09:45:12 +08:00
parent 807fb6df08
commit d778ac35f5
2 changed files with 35 additions and 26 deletions

View File

@@ -17,8 +17,8 @@ android {
applicationId "com.xxpatx.os" applicationId "com.xxpatx.os"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 1068 versionCode 1069
versionName "1.6.8" versionName "1.6.9"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -12,7 +12,6 @@ import android.graphics.Point;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
@@ -31,6 +30,13 @@ import com.xxpatx.os.utils.ForegroundAppUtil;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Random; import java.util.Random;
import java.util.concurrent.TimeUnit;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableEmitter;
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.functions.Consumer;
/** /**
* 通过微信标签最高支持8.0.498.0.50 获取不到数据 * 通过微信标签最高支持8.0.498.0.50 获取不到数据
@@ -64,7 +70,7 @@ public class SelectToSpeakService extends AccessibilityService {
public static final int TYPE_VOICE = 0; public static final int TYPE_VOICE = 0;
public static final int TYPE_VIDEO = 1; public static final int TYPE_VIDEO = 1;
private static final int WAIT_TIME = 1200; private static final int WAIT_TIME = 1300;
private int mCallType = TYPE_VOICE; private int mCallType = TYPE_VOICE;
@@ -73,17 +79,12 @@ public class SelectToSpeakService extends AccessibilityService {
private String mName = "";//微信昵称 private String mName = "";//微信昵称
private String mTagName = "";//微信联系人标签名 private String mTagName = "";//微信联系人标签名
private boolean mAutoAccept = false; private boolean mAutoAccept = false;
private boolean finished = true;
private Handler handler = null; public interface AccessibilityEventCallback {
private AccessibilityEvent input = null; void onAccessibilityEventCallback(AccessibilityEvent accessibilityEvent);
private Runnable runnable = new Runnable() { }
@Override
public void run() { private AccessibilityEventCallback mAccessibilityEventCallback;
_onAccessibilityEvent(input);
finished = true;
}
};
@Override @Override
public void onCreate() { public void onCreate() {
@@ -91,10 +92,27 @@ public class SelectToSpeakService extends AccessibilityService {
Log.e(TAG, "onCreate: "); Log.e(TAG, "onCreate: ");
registerSettingReceiver(); registerSettingReceiver();
mAutoAccept = mMMKV.decodeBool(CommonConfig.WECHAT_CALL_AUTO_ACCEPT, false); mAutoAccept = mMMKV.decodeBool(CommonConfig.WECHAT_CALL_AUTO_ACCEPT, false);
handler = new Handler(); analysisAccessibilityEvent();
}
private void analysisAccessibilityEvent() {
Observable.create(new ObservableOnSubscribe<AccessibilityEvent>() {
@Override
public void subscribe(@NonNull ObservableEmitter<AccessibilityEvent> emitter) throws Throwable {
mAccessibilityEventCallback = emitter::onNext;
}
}).throttleLast(WAIT_TIME, TimeUnit.MILLISECONDS)
.subscribe(new Consumer<AccessibilityEvent>() {
@Override
public void accept(AccessibilityEvent accessibilityEvent) throws Throwable {
Log.e(TAG, "analysisAccessibilityEvent accept: ");
_onAccessibilityEvent(accessibilityEvent);
}
});
} }
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand: "); Log.e(TAG, "onStartCommand: ");
@@ -126,18 +144,9 @@ public class SelectToSpeakService extends AccessibilityService {
@Override @Override
public void onAccessibilityEvent(AccessibilityEvent event) { public void onAccessibilityEvent(AccessibilityEvent event) {
// List<AccessibilityWindowInfo> accessibilityWindowInfos = getWindows(); Log.v(TAG, "onAccessibilityEvent: event = " + event.toString());
// Log.e(TAG, "onAccessibilityEvent: getWindows = " + accessibilityWindowInfos);
// Log.v(TAG, "onAccessibilityEvent: event = " + event.toString());
checkClassName(event); checkClassName(event);
if (finished) { mAccessibilityEventCallback.onAccessibilityEventCallback(event);
finished = false;
} else {
Log.v(TAG, "bounce");
handler.removeCallbacks(runnable);
}
input = event;
handler.postDelayed(runnable, WAIT_TIME);
} }
private void checkClassName(AccessibilityEvent event) { private void checkClassName(AccessibilityEvent event) {