快捷键
M8Test 实现了快捷键系统, 为了让用户可以更好的脱离桌面端使用, 只需要将手机和键盘连接就可以实现通过键盘快捷键操作M8Test app.
绑定命令
点击悬浮菜单中快捷键按钮

点击添加图标

点击快捷键输入框让其获取焦点

按下外接键盘的快捷键

填写快捷键触发时需要运行的命令以及描述信息后点击添加按钮

可以看到快捷键已经添加成功

按下刚刚添加的快捷键测试结果
自定义快捷键
如果想要自定义快捷键的话需要通过插件实现, 如果您还不会开发插件可以先查看 插件开发
创建 DefaultHotkey 对象
创建 DefaultHandler 对象
需要时通过 HotkeyUtils.register 注册快捷键
不需要时通过 HotkeyUtils.unregister 取消注册快捷键
package com.m8test.plugins.common.hotkey
import android.view.KeyEvent
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import com.hjq.toast.Toaster
import com.m8test.Result
import com.m8test.hotkey.impl.DefaultHandler
import com.m8test.hotkey.impl.DefaultHotkey
import com.m8test.plugin.api.ApkPluginProvider
import com.m8test.plugin.impl.AbstractComposablePluggableApkPlugin
import com.m8test.util.HotkeyUtils
/**
* Description TODO
*
* @date 2025/01/17 12:29:32
* @author M8Test, [email protected], https://m8test.com
*/
class HotkeyPlugin(apkPluginProvider: ApkPluginProvider) :
AbstractComposablePluggableApkPlugin(apkPluginProvider) {
@Composable
override fun Content() {
Column {
Text("press ctrl-c to show or hide button")
var show by remember { mutableStateOf(false) }
if (show)
TextButton(onClick = { Toaster.show("Test Button") }) {
Text("Test Button")
}
DisposableEffect(Unit) {
val hotkey = DefaultHotkey(
code = KeyEvent.KEYCODE_C,
isCtrlPressed = true
)
val handler = DefaultHandler(
id = "TestHandler",
description = "test handler",
handler = { origin, environment ->
show = !show
Result.success()
}
)
HotkeyUtils.register(this@HotkeyPlugin, hotkey, handler)
onDispose {
HotkeyUtils.unregister(this@HotkeyPlugin, hotkey, handler)
}
}
}
}
}
Last modified: 29 April 2025