[英]dispatchKeyEvent does not trigger in Unity - Native Android plugin
I want to trigger onKeyUp or dispatchKeyEvent in Android, and send a message to Unity3D of the keyPress 我想在Android中触发onKeyUp或dispatchKeyEvent,并向keyPress的Unity3D发送消息
I made a Java native Plugin with: 我用以下方法制作了Java本机插件:
public class VolumeKeyClass extends Activity {
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d("Unity","onKeyUp UP");
int action = event.getAction();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume UP pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume up!!");
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume DOWN pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume Down!");
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
Already Tested the communication, between Unity and The plugin, is correctly loggin the message, but onKeyUp nor dispatchKeyEvent is not triggering to send the message, nor the Logcat. 已经测试了Unity和插件之间的通信是否正确登录了消息,但是onKeyUp或dispatchKeyEvent既不触发发送消息,也不触发Logcat。 (target API 15, Ice Cream Sandwich)
(目标API 15,冰淇淋三明治)
You have to use OnKeyListener like this: 您必须像这样使用OnKeyListener :
public class VolumeKeyClass extends Activity {
void InitializeKeyListener ()
{
OnKeyListener keyListener = new OnKeyListener() {
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d("Unity","onKeyUp UP");
int action = event.getAction();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume UP pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume up!!");
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
Log.d("test", "Volume DOWN pressed! " + event);
UnityPlayer.UnitySendMessage("MainController","logStatus","Volume Down!");
}
return true;
default:
return super.dispatchKeyEvent(event);
}
};
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.