findAndHookMethod из onInterceptTouchEvent возвращает нечетные данные

Я использую Xposed Framework, чтобы подключить метод: "onInterceptTouchEvent". Этот код выполняется в фоновом режиме, и я пытаюсь подключить каждый жест касания во всех приложениях на моем устройстве Glaxy S4.

Я пытаюсь записать в файл данные объекта MotionEvent, но когда в "com.sec.android.app.launcher" происходит жест касания, я получаю исключение: "ошибка открытия: EACCES (разрешение отклонено)"

Я пытался использовать синхронизированный класс или поставить блокировки на функцию, но это не помогает.

Я добавил "использует разрешение android:name="android.permission.WRITE_EXTERNAL_STORAGE", так что это не проблема

Другой вопрос, почему sInteimes onInterceptTouchEvent получает только ACTION_DOWN?

Вот мой код:

findAndHookMethod("android.view.ViewGroup", lpparam.classLoader, "onInterceptTouchEvent", MotionEvent.class, new XC_MethodHook() {

        @Override
        protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
           MotionEvent motionEvent = (MotionEvent) param.args[0];

           String path =Environment.getExternalStorageDirectory().toString();

           try {
                File file = new File(path);
                file.mkdir();
                path += "/" + filename;
                file = new File(path);
                CSVWriter writer = null;
                FileWriter fw = new FileWriter(path, true);
                writer = new CSVWriter(fw);

                writer.writeNext(new String[]{otionEvent.getEventTime() + "",
                     motionEvent.getRawX() + "",
                     motionEvent.getRawY() + ""
                });

                writer.close();



           } catch (Exception e) {
                Toast.makeText(AndroidAppHelper.currentApplication().getBaseContext(), e.getMessage());

           }

}

0 ответов

Другие вопросы по тегам