version:1.6.9
fix: update:优化无障碍
This commit is contained in:
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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.49,8.0.50 获取不到数据
|
* 通过微信标签最高支持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_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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user