三星Galaxy XCover/Active按键

7
Galaxy S4/S5/S6 Active和Galaxy XCover型号配备了这个额外的硬件按钮。在设置中,用户可以选择当按下该按钮时要打开哪个应用程序。
我正在开发一个专门针对Galaxy XCover 3的应用程序。当用户首次打开该应用程序时,我想询问用户是否愿意让硬件按钮打开我的应用程序。
我尝试注册广播接收器以侦听“相机按钮”事件,但这并不起作用。
有人知道我如何实现这个结果吗?
2个回答

7
我遇到了同样的问题,找到了解决方法。 使用下面的代码查找键码。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    System.out.println("keycode -->" +keyCode);
    System.out.println("Key event -->" + event );
    return false;
}

那么,将其转换为一个最终的int,并使用按键代码进行赋值。
final int ACTIVE_BUTTON = 1015;

最后编写你的onKeyDown事件。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    switch(keyCode){
        case ACTIVE_BUTTON:
            //your action here
            return true;
    }
}

1
你是否进行了额外的设置以启用此行为?因为当我尝试获取按键事件时,onKeyDown监听器对xcover按钮没有反应。其他事件,如音量按钮按下,则被正确注册。 - Kalle
2
现在它正在工作。问题在于这个设备有两个不同的版本,只能与安卓6以上的新版本兼容。 - Kalle

0

来自三星:

硬件按键重新映射 请参考此部分,使用三星Knox SDK集成硬件按键重新映射配置。

PTT按键重新映射注意事项 如果PTT应用程序供应商决定使用由三星定义的意图,IT管理员可以选择保留预填充的意图,或输入其PTT应用程序供应商提供的意图。

向PTT供应商应用程序列出通用意图 供应商还可以使用以下意图进行PTT按键按下和释放操作:

按下按键 -> com.samsung.android.knox.intent.action.PTT_PRESS 释放按键 -> com.samsung.android.knox.intent.action.PTT_RELEASE 还可以考虑以下可选时间戳:

额外 -> com.samsung.android.knox.intent.extra.EVENT_TIMESTAMP(类型为long,将保存事件的Epoch时间戳) 安全的PTT意图 三星Knox团队建议在清单中静态注册意图,以便KSP在停止状态下唤醒应用程序。请考虑以下内容:

<接收器

android:name=".PTTKeyReceiver"

android:permission="com.samsung.android.knox.permission.KNOX_CUSTOM_SETTING"

android:exported="true" >

可选安全性:为确保 PTT 供应商应用仅监听来自 KSP 的意图操作,应用程序可以在接收器中添加上述权限,该权限受平台签名保护。

参考:

https://docs.samsungknox.com/admin/knox-service-plugin/Hardware_key_re-mapping.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接