我想创建一个 android 应用程序,让用户玩需要通过按键输入倾斜屏幕的游戏。按下某个键时是否可以模拟加速度计数据?同时,当我的应用程序运行时,我可以用一些代码禁用真正的加速度计吗?
编辑:我忘了提到我可以访问完整的 android 源代码以及内核源代码,所以我什至可以添加特定代码或创建一些 java 代码来禁用或“伪造”加速度计输入源。
我想创建一个 android 应用程序,让用户玩需要通过按键输入倾斜屏幕的游戏。按下某个键时是否可以模拟加速度计数据?同时,当我的应用程序运行时,我可以用一些代码禁用真正的加速度计吗?
编辑:我忘了提到我可以访问完整的 android 源代码以及内核源代码,所以我什至可以添加特定代码或创建一些 java 代码来禁用或“伪造”加速度计输入源。
你不能。
加速度计是一项系统服务,您无法控制其他应用程序如何使用它,因此您无法禁用/覆盖它。
通过将数据写入 /dev/ 部分的适当部分,可以在有根设备上伪造值,但我不知道那是哪一部分。
按照本教程,您可以轻松禁用加速度计。
注意线条
package com.badlogic.drop;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
public class AndroidLauncher extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config= new AndroidApplicationConfiguration();
config.useAccelerometer = false;
config.useCompass = false;
initialize(new Drop(), config);
}
}
链接中的教程适用于 libgdx,而 libgdx 是一个 Java 游戏开发框架,它提供了一个统一的 API,适用于包括 android 在内的所有受支持的平台。