我想在自己的应用程序上模拟触摸事件。 尽管之前已经问过这个问题,但我还是想在自己的应用程序上模拟触摸。
使用这些代码时,我的应用程序崩溃。我不知道问题出在哪里。 主要活动: https://justpaste.it/7g7ct
和MyService: https://justpaste.it/2uury
MainActivity:
package com.example.myapplicationdffghgh;
import androidx.appcompat.app.AppCompatActivity;
import android.accessibilityservice.AccessibilityService;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
import java.nio.file.Path;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent serviceIntent = new Intent(this, GestureDescription.class);
startService(serviceIntent);
GestureDescription.createClick(581,1044);
}
}
答案 0 :(得分:0)
首先GestureDescription
不是extends Service
,因此startService
不能以Activity
开头...因此删除这些行:
Intent serviceIntent = new Intent(this, GestureDescription.class);
startService(serviceIntent);
答案 1 :(得分:0)
您可以使用View的onTouchEvent方法,并使用所需的坐标创建一个MotionEvent。
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_UP,
x,
y,
metaState
);
view.dispatchTouchEvent(motionEvent);