首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xposed注入陀螺仪事件

使用xposed注入陀螺仪事件
EN

Stack Overflow用户
提问于 2019-10-18 06:52:01
回答 1查看 151关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-01 00:55:44

我用钩子dispatchSensorEvent方法求解

代码语言:javascript
复制
                   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;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58441685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档