防止主页按钮按Android NDK

时间:2013-07-26 18:15:57

标签: android android-ndk

我正在为我的小朋友创建一个应用程序,因为她喜欢这款手机但却弄乱了我的桌面。我正在使用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);

1 个答案:

答案 0 :(得分:1)

使用Java SDK或NDK进行开发并不重要。 HOME按钮的关键事件不会发送到您的应用程序。这是设计上的,HOME按钮是Android设备上的通用功能,应用程序不应该能够修改它的行为。