【问题标题】:simulate touch events on Android在 Android 上模拟触摸事件
【发布时间】:2020-10-20 12:48:38
【问题描述】:

我想在我自己的应用程序上模拟一个触摸事件。 虽然之前有人问过这个问题,但我想在我自己的应用程序上模拟触摸。

当我使用这些代码时,我的应用程序崩溃了。我不知道问题出在哪里。 主要活动: https://justpaste.it/7g7ct

和我的服务: https://justpaste.it/2uury

主活动:

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);


    }




   


}

【问题讨论】:

  • 把你的代码放在这里,它会有很好的颜色和可读性。并从 logcat 中放置异常堆栈跟踪

标签: java android android-studio touch-event


【解决方案1】:

你可以使用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);

【讨论】:

  • 视图是红线,你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多