三星 Galaxy XCover/Active 按钮

Samsung Galaxy XCover/Active button

Galaxy S4/S5/S6 Active 和 Galaxy XCover 型号有这个额外的硬件按钮。在设置中,用户可以选择按下按钮时应打开的应用程序。

我正在开发一个专门针对 Galaxy XCover 3 的应用程序。当用户第一次打开该应用程序时,我想询问用户是否要让硬件按钮打开我的应用程序。

我尝试在 "Camera button" 事件上注册一个广播接收器,但这不起作用。

有谁知道我怎样才能达到这个结果?

我遇到了同样的问题并找到了解决方案。

使用下面的代码查找键码。

@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;
}

然后用键码做一个最终的整数。

final int ACTIVE_BUTTON = 1015;

最后写你的 onKeyDown 事件。

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

来自三星:

硬件密钥重新映射 参考本节使用 Samsung Knox SDK 集成硬件键重映射配置。

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

列出 PTT 供应商应用程序的通用意图 供应商还可以将以下意图用于 PTT 按键按下和释放操作:

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

Extra -> com.samsung.android.knox.intent.extra.EVENT_TIMESTAMP(long 类型将保存事件的 Epoch 时间戳) 保护 PTT 意图 Samsung 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