我正在为我的小朋友创建一个应用程序,因为她喜欢这款手机但却弄乱了我的桌面。我正在使用NDK进行我的应用程序,我有以下内容....
static int32_t handle_input(struct android_app* app, AInputEvent* event) {
if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY)
{
int key_val = AKeyEvent_getKeyCode(event);
switch(key_val){
case AKEYCODE_BACK:
LOGI("Back Button hit");
break;
case AKEYCODE_HOME:
LOGI("HOME HIT");
break;
}
LOGI("Input Recieved %d", key_val);
}
return 1;
}
但是当我按下后退按钮然后按下主页按钮时,我看到......
I/native-activity(24450): Back Button hit
I/native-activity(24450): Input Recieved 4
I/native-activity(24450): Back Button hit
I/native-activity(24450): Input Recieved 4
I/ActivityManager( 278): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher} from pid 278
是否有许可或其他我可以给它以允许我按下主页按钮?似乎应该有这个测试类......
TEST_F(KeyboardInputMapperTest, Process_SimpleKeyPress) {
const int32_t USAGE_A = 0x070004;
const int32_t USAGE_UNKNOWN = 0x07ffff;
mFakeEventHub->addKey(DEVICE_ID, KEY_HOME, 0, AKEYCODE_HOME, POLICY_FLAG_WAKE);
答案 0 :(得分:1)
使用Java SDK或NDK进行开发并不重要。 HOME按钮的关键事件不会发送到您的应用程序。这是设计上的,HOME按钮是Android设备上的通用功能,应用程序不应该能够修改它的行为。