2013-01-23 84 views
0

我正試圖傾聽搜索關鍵字,我發現了兩種解決方案,但是由於某種原因,這兩種解決方案都無法使用搜索按鈕。如何收聽搜索鍵?

@Override 
public boolean onSearchRequested() { 
    System.out.println("KEYDOWN"); 
    return true; 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    System.out.println("KEYDOWN"); 
    return true; 
} 

正如你所看到的第一個只是搜索意圖和第二個選項應該抓住一切keydowns不管鍵,onkeydown事件是否正常工作的所有按鍵(返回,在我的手機菜單和音量鍵)在我Nexus S,但根本沒有抓住搜索關鍵。人們似乎很確定任何這種選擇應該工作,甚至有批准的地方onSearchRequested建議,但我已經嘗試了兩個電話,並在他們都沒有工作。

如何捕捉和禁用android上的搜索鍵?

+0

嘗試發佈的解決方案。這會幫助你。 –

+0

再次看到我的編輯。 –

+0

您可以嘗試將您的日誌記錄添加到「dispatchKeyEvent」中。以防萬一某個View捕捉到搜索關鍵字。 – harism

回答

1

試試這個:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     Toast.makeText(getApplicationContext(), "Fired", Toast.LENGTH_LONG).show(); 
     if (keyCode == KeyEvent.KEYCODE_SEARCH) { 
      Toast.makeText(getApplicationContext(), "Search Key Fired", Toast.LENGTH_LONG).show(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

OR:

@Override 
    public boolean onSearchRequested() { 
     Toast.makeText(getApplicationContext(), "onSearchRequested", Toast.LENGTH_LONG).show(); 
     return false; 
    } 

注:

如果您的設備不享受最新和最偉大的操作系統,繼續和自來水 表示Google搜索欄,一個d您將會收到「Get Google Now!」 屏幕(圖A)。此時,您可以選擇啓用Google即時 或稍後關閉該功能。您還可以點按「瞭解詳情」到 瞭解Google即時提供的內容。

參考:

Google Now on Android Jelly Bean is more than just a search feature

感謝

+0

Keydown沒有被搜索按鈕解僱。我嘗試了代碼,但仍然可以打開Goog​​le即時。 – lisovaccaro

+0

@ Liso22奇怪我只是再次測試代碼並在'super.onkeydown'後放置了Toast消息,它像一個魅力一樣工作,並且它完美地檢查了KeyEvent.KEYCODE_SEARCH關鍵事件。 –

+0

我不明白,除了搜索關鍵字外,我還得到了第一次使用所有按鍵的麪包。我必須嘗試其他的東西 – lisovaccaro