0

Xposed Framework を使用してメソッドをフックしています: "onInterceptTouchEvent" このコードはバックグラウンドで実行されており、Glaxy S4 デバイスのすべてのアプリケーションですべてのタッチ ジェスチャをフックしようとしています。

MotionEvent オブジェクトのデータをファイルに書き込もうとしていますが、「com.sec.android.app.launcher」でタッチ ジェスチャが発生すると、「open failed: EACCES (Permission denied)」という例外が発生します。

同期クラスを使用するか、関数にロックを設定しようとしましたが、役に立ちません。

「uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE」を追加したので問題ありません

もう 1 つの質問ですが、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());

           }

}
4

0 に答える 0