前提・実現したいこと
Android Studioの仮想端末で指定した座標にタッチイベントを発生させたいです.
発生している問題・エラーメッセージ
mInputManagerに対してUnresolved reference: mInputManager
該当のソースコード
kotlin
1package com.example.taro.tapbookair2 2 3import android.os.SystemClock; 4import android.view.* 5import android.view.MotionEvent 6import java.lang.reflect.InvocationTargetException 7 8 9private fun injectInputEvent(event: InputEvent) { 10 try { 11 val hiddenMethod = mInputManager.javaClass.getMethod("injectInputEvent", InputEvent::class.java, Integer.TYPE) 12 hiddenMethod.invoke(mInputManager, event, 0) 13 } catch (e: NoSuchMethodException) { 14 e.printStackTrace() 15 } catch (e: IllegalAccessException) { 16 e.printStackTrace() 17 } catch (e: IllegalArgumentException) { 18 e.printStackTrace() 19 } catch (e: InvocationTargetException) { 20 e.printStackTrace() 21 } 22} 23fun sendMotionEvent() { 24 val downTime = SystemClock.uptimeMillis() 25 val eventTime = SystemClock.uptimeMillis()+1000 26 27 val event1 = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, 700f, 787f, 0) 28 val event2 = MotionEvent.obtain(eventTime+100, eventTime+2000, MotionEvent.ACTION_UP, 700f, 787f, 0) 29 event1.source = InputDevice.SOURCE_TOUCHSCREEN 30 event2.source = InputDevice.SOURCE_TOUCHSCREEN 31 32 injectInputEvent(event1) 33 injectInputEvent(event2) 34}}
試したこと
importに追加しようと考えたが,書き方がわからない.
補足情報(FW/ツールのバージョンなど)
このサイトを参考にしました.
https://qiita.com/solmin719/items/95cba1d8ade734fe7ce9
Manifestに
<uses-permission android:name="android.permission.INJECT_EVENTS" />
を追加しました.
Unresolved reference: mInputManagerを直しただけで,動作するのでしょうか.
今回,初めてAndroid Studio(Java,kotlin)を使うので,詳しく教えていただきたいです.
このコードを変えるのではなく,より簡単にAndroid Studioでタッチイベントが発生できるコードがあれば教えていただきたいです.
あなたの回答
tips
プレビュー