diff options
| author | Rémi Verschelde | 2016-05-29 18:37:33 +0200 |
|---|---|---|
| committer | Rémi Verschelde | 2016-05-29 18:37:33 +0200 |
| commit | 96bdab6edfb2834a07add23cd3892a599ee9bfa4 (patch) | |
| tree | 925f53859c34f0fe92f54a9901def5c8077359dd /platform/android/java | |
| parent | a2fee794591c09be9f1c625eee0df60977fb1e95 (diff) | |
| parent | 8d69e1b6205b0f7073129873b2b8f809e6d25c2b (diff) | |
| download | godot-96bdab6edfb2834a07add23cd3892a599ee9bfa4.tar.gz godot-96bdab6edfb2834a07add23cd3892a599ee9bfa4.tar.zst godot-96bdab6edfb2834a07add23cd3892a599ee9bfa4.zip | |
Merge pull request #4845 from vnen/pr-magnetometer
Add magnetometer sensor support for Android
Diffstat (limited to 'platform/android/java')
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/Godot.java | 13 | ||||
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/GodotLib.java | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index 1f208f8fb..c4ba2da75 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -206,6 +206,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC private SensorManager mSensorManager; private Sensor mAccelerometer; + private Sensor mMagnetometer; public FrameLayout layout; public RelativeLayout adLayout; @@ -374,6 +375,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME); + mMagnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); + mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME); result_callback = null; @@ -588,6 +591,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC mView.onResume(); mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); + mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL); GodotLib.focusin(); if(use_immersive && Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+ Window window = getWindow(); @@ -646,7 +650,14 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC float x = adjustedValues[0]; float y = adjustedValues[1]; float z = adjustedValues[2]; - GodotLib.accelerometer(x,y,z); + + int typeOfSensor = event.sensor.getType(); + if (typeOfSensor == event.sensor.TYPE_ACCELEROMETER) { + GodotLib.accelerometer(x,y,z); + } + if (typeOfSensor == event.sensor.TYPE_MAGNETIC_FIELD) { + GodotLib.magnetometer(x,y,z); + } } @Override public final void onAccuracyChanged(Sensor sensor, int accuracy) { diff --git a/platform/android/java/src/org/godotengine/godot/GodotLib.java b/platform/android/java/src/org/godotengine/godot/GodotLib.java index 7c5ac33c8..df181ae1b 100644 --- a/platform/android/java/src/org/godotengine/godot/GodotLib.java +++ b/platform/android/java/src/org/godotengine/godot/GodotLib.java @@ -51,6 +51,7 @@ public class GodotLib { public static native void step(); public static native void touch(int what,int pointer,int howmany, int[] arr); public static native void accelerometer(float x, float y, float z); + public static native void magnetometer(float x, float y, float z); public static native void key(int p_scancode, int p_unicode_char, boolean p_pressed); public static native void joybutton(int p_device, int p_but, boolean p_pressed); public static native void joyaxis(int p_device, int p_axis, float p_value); |
