Как разыграть Android MotionEvent в NDK AInputEvent в Android 10 - PullRequest
0 голосов
/ 25 марта 2020

Приложение, над которым я работаю изначально, было разработано с использованием нативной активности и использовало AInputEvent для обработки сенсорного ввода. Код был перенесен в Java Активность, но код обработки касаний все еще находится в C ++. Мы передаем MotionEvent через jni в c ++, а затем извлекаем собственный указатель и приводим его к AInputEvent. Но теперь мы просто не можем использовать этот способ, так как в Android 10 вы не можете получить собственный указатель из класса MotionEvent из-за ограничений платформы.

    // Pointer to the native MotionEvent object that contains the actual data.
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
    private long mNativePtr;

Прямо сейчас я вижу только одно решение - преобразовать MotionEvent в AInputEvent, задав вручную значения, определяющие c параметров, которые мне понадобятся в будущем для правильной обработки (как здесь: Отправка MotionEvent из Java до JNI ). Но, наверное, есть более элегантный или правильный путь?

...