注入陀螺仪事件并摆放

问题描述 投票:0回答:1

我想在按下按钮时模拟陀螺仪数据。是否可以通过使用xposed模块以编程方式注入这些事件]

android android-sensors inject gyroscope xposed
1个回答
0
投票

我由钩子dispatchSensorEvent方法解决

                   findAndHookMethod(
                            "android.hardware.SystemSensorManager$SensorEventQueue",
                            lpparam.classLoader, "dispatchSensorEvent", int.class, float[].class, int.class, long.class, new XC_MethodHook() {
                                @Override
                                protected void beforeHookedMethod(MethodHookParam param) {                        
                                Object systemSensorManager = XposedHelpers.getObjectField(param.thisObject, "mManager");
                                    SparseArray<Sensor> sensors = getSensors(systemSensorManager);
                                    int handle = (Integer) (param.args[0]); 
                                    Sensor sensor = sensors.get(handle);
                                    XposedBridge.log("sensor Name:"+sensor.getName() +" Value= "+ Arrays.toString((float[]) param.args[1]) );

            }
//getSensors method
    protected SparseArray<Sensor> getSensors(Object systemSensorManager) {
            @SuppressWarnings("unchecked")
            HashMap<Integer, Sensor> map = (HashMap<Integer, Sensor>) XposedHelpers.getObjectField(systemSensorManager, "mHandleToSensor");

            SparseArray<Sensor> sensors = new SparseArray<>(map.size());
            for (Integer i : map.keySet()) {
                sensors.append(i, map.get(i));
            }
            return sensors;
        }
© www.soinside.com 2019 - 2024. All rights reserved.