【发布时间】:2015-10-22 12:40:23
【问题描述】:
Galaxy S4/S5/S6 Active 和 Galaxy XCover 型号有这个额外的硬件按钮。在设置中,用户可以选择按下按钮时应该打开哪个应用程序。
我正在开发一个专门针对 Galaxy XCover 3 的应用程序。当用户第一次打开应用程序时,我想询问用户是否想让硬件按钮打开我的应用程序。
我尝试在“相机按钮”事件上注册广播接收器,但这不起作用。
有谁知道我怎样才能达到这个结果?
【问题讨论】:
Galaxy S4/S5/S6 Active 和 Galaxy XCover 型号有这个额外的硬件按钮。在设置中,用户可以选择按下按钮时应该打开哪个应用程序。
我正在开发一个专门针对 Galaxy XCover 3 的应用程序。当用户第一次打开应用程序时,我想询问用户是否想让硬件按钮打开我的应用程序。
我尝试在“相机按钮”事件上注册广播接收器,但这不起作用。
有谁知道我怎样才能达到这个结果?
【问题讨论】:
我遇到了同样的问题并找到了解决方案。
使用下面的代码查找密钥代码。
@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;
}
然后用 keycode 做一个最终的 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;
}
}
【讨论】:
onKeyDown 侦听器不会对 xcover 按钮做出反应。其他事件(如音量按钮按下)已正确注册。
来自三星:
硬件密钥重新映射 请参阅此部分以使用 Samsung Knox SDK 集成硬件密钥重新映射配置。
PTT 键重新映射注意事项 如果 PTT 应用供应商决定使用三星定义的意图,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 意图 三星 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
【讨论】: