当我的手指触摸屏幕时自动点击停止
Auto click is stopping when my finger touches the screen
我使用 dispatchGesture and everything is working but when I touch the screen using my finger it stop and call onCancelled 方法制作了自动答题器
服务
public class MyService extends AccessibilityService {
private Path path;
private GestureDescription.Builder builder;
private GestureDescription.StrokeDescription strokeDescription;
private GestureResultCallback gestureResultCallback;
private GestureDescription gestureDescription;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getBooleanExtra("isClicked", false)) {
clickOnPosition();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
}
@Override
public void onInterrupt() {
}
private void clickOnPosition() {
if (path == null) {
path = new Path();
path.moveTo(540, 960);
path.lineTo(540, 960);
}
if (builder == null)
builder = new GestureDescription.Builder();
if (strokeDescription == null) {
strokeDescription = new GestureDescription.StrokeDescription(path, 0, 500);
builder.addStroke(strokeDescription);
}
if (gestureResultCallback == null)
gestureResultCallback = new GestureResultCallback() {
@Override
public void onCompleted(GestureDescription gestureDescription) {
clickOnPosition();
}
@Override
public void onCancelled(GestureDescription gestureDescription) {
super.onCancelled(gestureDescription);
}
};
if (gestureDescription == null)
gestureDescription = builder.build();
dispatchGesture(gestureDescription, gestureResultCallback, null);
}
}
MainActivity 中的按钮
public void click(View view) {
if (intent == null) {
intent = new Intent(this, MyService.class);
intent.putExtra("isClicked", true);
startService(intent);
}
}
关于代码,它是好的代码还是有更好的方法???
我很惊讶你自己启动AccessibilityService
(在click
方法中)......这种Service
必须由系统启用,允许和启动自动检查如何在 HERE 中声明它。如果没有这个过程(系统自动启动,而不是自己调用)AccessibilityService
可能会像往常一样表现 Service
,导致没有执行 dispatchGesture
(以及所有其他敏感方法调用)的权限,还有一些自定义 AccessibilityService
方法永远不会被调用,就像重写一样,但是空的 onAccessibilityEvent(...)
我使用 dispatchGesture and everything is working but when I touch the screen using my finger it stop and call onCancelled 方法制作了自动答题器
服务
public class MyService extends AccessibilityService {
private Path path;
private GestureDescription.Builder builder;
private GestureDescription.StrokeDescription strokeDescription;
private GestureResultCallback gestureResultCallback;
private GestureDescription gestureDescription;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getBooleanExtra("isClicked", false)) {
clickOnPosition();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
}
@Override
public void onInterrupt() {
}
private void clickOnPosition() {
if (path == null) {
path = new Path();
path.moveTo(540, 960);
path.lineTo(540, 960);
}
if (builder == null)
builder = new GestureDescription.Builder();
if (strokeDescription == null) {
strokeDescription = new GestureDescription.StrokeDescription(path, 0, 500);
builder.addStroke(strokeDescription);
}
if (gestureResultCallback == null)
gestureResultCallback = new GestureResultCallback() {
@Override
public void onCompleted(GestureDescription gestureDescription) {
clickOnPosition();
}
@Override
public void onCancelled(GestureDescription gestureDescription) {
super.onCancelled(gestureDescription);
}
};
if (gestureDescription == null)
gestureDescription = builder.build();
dispatchGesture(gestureDescription, gestureResultCallback, null);
}
}
MainActivity 中的按钮
public void click(View view) {
if (intent == null) {
intent = new Intent(this, MyService.class);
intent.putExtra("isClicked", true);
startService(intent);
}
}
关于代码,它是好的代码还是有更好的方法???
我很惊讶你自己启动AccessibilityService
(在click
方法中)......这种Service
必须由系统启用,允许和启动自动检查如何在 HERE 中声明它。如果没有这个过程(系统自动启动,而不是自己调用)AccessibilityService
可能会像往常一样表现 Service
,导致没有执行 dispatchGesture
(以及所有其他敏感方法调用)的权限,还有一些自定义 AccessibilityService
方法永远不会被调用,就像重写一样,但是空的 onAccessibilityEvent(...)