version:1.6.9
fix: update:优化无障碍
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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.49,8.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) {
|
||||
|
||||
Reference in New Issue
Block a user