如何在android上模拟PC的Esc键

发布于 2024-11-17 23:31:07 字数 129 浏览 4 评论 0原文

我正在写一个可以在android上玩flash的应用程序,但是我无法模拟ESC键,因为很多flash游戏需要ESC键才能返回主菜单,没有这个键我制作的应用程序将毫无用处。谁能告诉我如何模拟这个?我可以只发送一个密钥代码吗?但我也不知道键码...

I'm writing an app that can play flash on android, but I can't simulate ESC key, since a lot of flash games need ESC key to return to the main menu, without this key the app I made will be useless. So who could tell me how to simulate this? Can I just send a keycode? but I don't know the keycode too...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

写下不归期 2024-11-24 23:31:08

您想查看 KeyEvent 属性。 KEYCODE_ESCAPE 有一个常量值。

您可以在此处详细了解如何实现它

You want to have a look at the KeyEvent property. There is a constant value for KEYCODE_ESCAPE.

You can learn more about how to implement it here

暮倦 2024-11-24 23:31:08

大多数游戏都使用 BACK 键来实现此目的...请参阅 http://developer.android。 com/sdk/android-2.0.html

请注意,虽然有一个关键事件 ESCAPE(正如 Ezeh 指出的那样),但它仅在 API 级别 11 上可用(即 Android 3.0 及更高版本 - http://developer.android.com/guide/appendix/api-levels.html),它在设备中的应用还不是很广泛。

Most games use the BACK key for this.... See http://developer.android.com/sdk/android-2.0.html

Note that, while there is a key event ESCAPE (as Ezeh points out), that is only available at API level 11 (which is Android 3.0 and above - http://developer.android.com/guide/appendix/api-levels.html), which is not very widely available in devices yet.

他不在意 2024-11-24 23:31:08

我是这样解决的:
我用这个 onResume 回调创建了一个屏幕键盘:

InputConnection conn;

@Override
public void onResume() {
    super.onResume();

    View target_view = getActivity().findViewById( android.R.id.content );
    conn = new BaseInputConnection( target_view, true );
}

然后我为键盘上的所有键盘创建了这个 OnClickListener(仅显示回调):

@Override
public void onClick( View v ) {
    HardKeyEmulatorView vv = (HardKeyEmulatorView) v;

    if( conn != null ) {
        int hard_code = /* compute the Android scan code of the key here */;
        conn.sendKeyEvent( new KeyEvent( KeyEvent.ACTION_DOWN, hard_code ) );
        conn.sendKeyEvent( new KeyEvent( KeyEvent.ACTION_UP, hard_code ) );
    }
}

请注意,“Esc”键盘键在不同的 Android 版本中会产生不同的代码。它在 Android 6 及更低版本中生成 KeyEvent.KEYCODE_ESCAPE,但在 Android 9 及更高版本中生成 KeyEvent.KEYCODE_BACK

I solved it this way:
I createda a screen keyboard with this onResume callback:

InputConnection conn;

@Override
public void onResume() {
    super.onResume();

    View target_view = getActivity().findViewById( android.R.id.content );
    conn = new BaseInputConnection( target_view, true );
}

Then I created this OnClickListener for all keyboards on the keyboard (only callback is shown):

@Override
public void onClick( View v ) {
    HardKeyEmulatorView vv = (HardKeyEmulatorView) v;

    if( conn != null ) {
        int hard_code = /* compute the Android scan code of the key here */;
        conn.sendKeyEvent( new KeyEvent( KeyEvent.ACTION_DOWN, hard_code ) );
        conn.sendKeyEvent( new KeyEvent( KeyEvent.ACTION_UP, hard_code ) );
    }
}

Note that "Esc" keyboard key produces different codes in different Android versions. It produces KeyEvent.KEYCODE_ESCAPE in Android 6 and lower versins but KeyEvent.KEYCODE_BACK in Android 9 and higher versions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文