Android 프레임 워크에 직접 센서 이벤트를 삽입하는 방법이 있는지 알고 싶습니다. 그래서 먼저 OnSensorChanged의 Thread.dumpstack()에 의한 센서 이벤트 흐름을 검사했습니다. 내가 센서 이벤트가 MessageQueue가 및 루퍼에 의해 처리됩니다 알 수이에서Android 프레임 워크에 가짜 센서 이벤트 삽입
java.lang.Throwable: stack dump at java.lang.Thread.dumpStack(Thread.java:489)
at com.test.sensor.SensorActivity.onSensorChanged(SensorActivity.java:64)
at android.hardware.SystemSensorManager$SensorEventQueue.dispatchSensorEvent(SystemSensorManager.java:469)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
(SensorActivity 내가 테스트를 위해 만든 활동).
그래서 가짜 센서 이벤트 메시지를 MessageQueue에 넣을 수 있다면 Android 프레임 워크가 센서 이벤트를 평소대로 처리 할 것이라고 생각했습니다.
그러나 센서 이벤트 메시지가 어떻게 보이고 어떻게 대기열에 추가되는지 알지 못합니다.
내 질문이 있습니다 : 내가 가짜 센서 이벤트를 생성 MessageQueue가 투입되어야 어떤 메시지
? 그리고 어떻게?
가짜 센서 이벤트를 주입하는 다른 방법이 있습니까?
저는 응용 프로그램 계층이 아니라 Android 프레임 워크 계층 (4.4.4)의 소스 코드를 수정하고 있습니다.
미리 감사드립니다.
시도 [android event injector] (https://code.google.com/p/android-event-injector/)? – Gattsu
@maven 나는 그것을 읽었고, 내가 알다시피, 그것은 터치 이벤트에만 해당된다. – ljhokgo