3
    adb shell sendevent /dev/input/event0 3 0 45
    adb shell sendevent /dev/input/event0 3 1 784
    adb shell sendevent /dev/input/event0 1 330 1
    adb shell sendevent /dev/input/event0 0 0 0
    adb shell sendevent /dev/input/event0 1 330 0
    adb shell sendevent /dev/input/event0 0 0 0

Androidコードからsendeventを呼び出す方法はありますか? シェルから上記のコマンドを実行すると、エミュレーターでクリック イベントを生成できます。Androidコードから同じ効果を生成することは可能ですか? 誰でも私を助けてください。

4

3 に答える 3

1

クリック (またはタッチ) イベントの「sendevent」コマンドには、「root」または「su」権限が必要です。

この質問で同じ問題を解決しようとしましたが、この方法またはSDKツールのみを使用した他の方法でタッチをシミュレートするための解決策は見つかりませんでした。

ただし、この記事で説明されているように、タッチをシミュレートする別の方法があります。

私自身は次に作業します(アプリが署名され、システムアプリケーションとして実行されます):

Thread thread = new Thread(){
@Override
public void run(){
    try {
        this.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    Instrumentation m_Instrumentation = new Instrumentation();
        m_Instrumentation.sendPointerSync(MotionEvent.obtain(
                SystemClock.uptimeMillis(),
                SystemClock.uptimeMillis(),
            MotionEvent.ACTION_DOWN,posx, posy, 0));
    m_Instrumentation.sendPointerSync(MotionEvent.obtain(
            SystemClock.uptimeMillis(),
            SystemClock.uptimeMillis(),
            MotionEvent.ACTION_UP,posx, posy, 0));
     }
};
thread.start();
于 2013-02-26T00:57:42.090 に答える
0

Runtime.exec() メソッドを介して同じシェル コマンドを発行できるはずです: http://developer.android.com/reference/java/lang/Runtime.html

于 2013-02-06T18:58:57.480 に答える