キー入力で画面を傾ける必要のあるゲームをユーザーがプレイできる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 は Android を含むサポートされているすべてのプラットフォームで動作する統合 API を提供する Java ゲーム開発フレームワークです。