In case anyone is reading: This is obsolete, I have found another workaround to avoid this problem at all. (I remap the keys by modifying the default.kl file on the device. Yes this requires rooting.)
SilvanaBanana

- Nov 27, 2020
- Joined Nov 4, 2020
- 0 best answers
In case someone else is facing this problem when creating a node and assigning the script in code: the answer above works, node.set_process(true) did the trick.
Hello, I am currently trying to invoke callback methods when the Volume Keys or a Hardware Key (Back, Home, Overview ) is pressed. Therefore, I started to implement a custom android module but atm, I am wondering how I can override these methods as they are part of the Activity class and not of GodotSingleton.
Is there a way to intercept presses of the Volume/SystemUI Buttons and execute my own code? I want something like this:
public class GodotInputHandling extends Godot.SingletonBase { private static final String TAG = "inputHandling_Activity"; private Activity activity; private int instanceId = 0; static public Godot.SingletonBase initialize(Activity p_activity) { return new GodotInputHandling(p_activity); } public GodotInputHandling(Activity p_activity) { registerClass("GodotInputHandling", new String[] { "initModule", }); activity = p_activity; } public void initModule(int _instanceId) { //some init code here if needed } //I want something like this, but it should override the metod in the activity @Override public boolean dispatchKeyEvent(KeyEvent event) { //check which key it was and call method in gdscript like: // if(event == .... ){ // GodotLib.calldeferred(instance_id, "_on_volume_down_pressed", new Object[] { }); // } else { // GodotLib.calldeferred(instance_id, "_on_foo_pressed", new Object[] { }); // } } //Or something like this, but this method is also part of the activity @Override public boolean onKeyDown(int keyCode) { //... } }