2013-10-24 2 views
3

В документации по подключению указано, что сброс ключа будет отправлен снова, если он удерживается, но если вы удерживаете медиа-ключ, я вообще не получаю никакого уведомления. Есть ли способ обнаружить это? Это на самом деле собирается Google (сейчас?) Поиск голосового ввода - возможно, есть трансляция, указывающая, что я могу получить?Как зафиксировать нажатие и удерживание (длинное нажатие) ACTION_MEDIA_BUTTON

Вот приемник моих BroadcastReceiver «S:

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    String intentAction = intent.getAction(); 
    int SoundID = 0; 

    if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) 
    { 
     KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
     if (event != null) 
     {    
      int action = event.getAction(); 

      if (action == KeyEvent.ACTION_DOWN) 
      { 
       Log.d("Hi", "MEDIA keydown r" + event.getRepeatCount()); 

       if (event.getRepeatCount() == 1) 
        DoSomethingMagical(); 
       else if (event.getRepeatCount() == 0) 
        DoSomethingSpecial(); 
      } 
     } 
    } 
} 

ответ

1

Вы можете реагировать на длинном пресс-конференции, добавив следующее intent-filter к вашему AndroidManifest.xml:

<intent-filter> 
    <action android:name="android.speech.action.WEB_SEARCH"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

К сожалению, это не будет обрабатываться в так же, как действие типа android.intent.action.MEDIA_BUTTON (ваш BroadcastReceiver не будет вызываться).

Смежные вопросы