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"
minSdkVersion 24
targetSdkVersion 29
versionCode 1068
versionName "1.6.8"
versionCode 1069
versionName "1.6.9"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -12,7 +12,6 @@ import android.graphics.Point;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
@@ -31,6 +30,13 @@ import com.xxpatx.os.utils.ForegroundAppUtil;
import java.util.List;
import java.util.Optional;
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 获取不到数据
@@ -64,7 +70,7 @@ public class SelectToSpeakService extends AccessibilityService {
public static final int TYPE_VOICE = 0;
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;
@@ -73,17 +79,12 @@ public class SelectToSpeakService extends AccessibilityService {
private String mName = "";//微信昵称
private String mTagName = "";//微信联系人标签名
private boolean mAutoAccept = false;
private boolean finished = true;
private Handler handler = null;
private AccessibilityEvent input = null;
private Runnable runnable = new Runnable() {
@Override
public void run() {
_onAccessibilityEvent(input);
finished = true;
}
};
public interface AccessibilityEventCallback {
void onAccessibilityEventCallback(AccessibilityEvent accessibilityEvent);
}
private AccessibilityEventCallback mAccessibilityEventCallback;
@Override
public void onCreate() {
@@ -91,10 +92,27 @@ public class SelectToSpeakService extends AccessibilityService {
Log.e(TAG, "onCreate: ");
registerSettingReceiver();
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
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand: ");
@@ -126,18 +144,9 @@ public class SelectToSpeakService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// List<AccessibilityWindowInfo> accessibilityWindowInfos = getWindows();
// Log.e(TAG, "onAccessibilityEvent: getWindows = " + accessibilityWindowInfos);
// Log.v(TAG, "onAccessibilityEvent: event = " + event.toString());
Log.v(TAG, "onAccessibilityEvent: event = " + event.toString());
checkClassName(event);
if (finished) {
finished = false;
} else {
Log.v(TAG, "bounce");
handler.removeCallbacks(runnable);
}
input = event;
handler.postDelayed(runnable, WAIT_TIME);
mAccessibilityEventCallback.onAccessibilityEventCallback(event);
}
private void checkClassName(AccessibilityEvent event) {