4

座標またはビュー要素で「クリック」(タッチ スクリーン) をシミュレートすることは可能ですか?

4

4 に答える 4

5

Android 画面でタッチ イベントをシミュレートすることが可能です。ビューの座標がある場合は、adb シェル コマンドを使用してタッチ イベントを生成できます。例えば ​​-

adbシェル入力タップxy

x と y は座標です。このコマンドはターミナルから実行できます。Android コードからコマンドを実行する場合は、「/system/bin/ input tap x y」を使用し、Runtime.getRuntime() メソッドを使用してこれを実行します。詳細については、返信してください。喜んでお手伝いします。:)

于 2017-11-29T12:20:34.160 に答える
2

azdevが示唆するように、これを試してください:

    view.setOnTouchListener(new OnTouchListener()
{
    public boolean onTouch(View v, MotionEvent event)
    {
        Toast toast = Toast.makeText(
            getApplicationContext(), 
            "View touched", 
            Toast.LENGTH_LONG
        );
        toast.show();

        return true;
    }
});


// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
    downTime, 
    eventTime, 
    MotionEvent.ACTION_UP, 
    x, 
    y, 
    metaState
);

// Dispatch touch event to view
view.dispatchTouchEvent(motionEvent);
于 2013-05-20T10:32:36.973 に答える
1

おそらく、クリックで呼び出したいものがあると思います。だから...それが実際のボタンなら、それを呼び出すことができますperformClick()。ボタンでない場合は、期待する条件が満たされたときに、実行したいメソッドを呼び出すだけです。実際に何をしようとしているのかについて、もう少し詳しく説明していただけると助かります。

于 2013-05-20T10:28:21.823 に答える
0

ビューで、はい。座標では、Java Robot のように、私は気づいていません。

例えば:

Button buttonFoo = (Button)findViewById(R.id.button_foo);
buttonFoo.performClick();
于 2013-05-20T10:26:24.023 に答える