2016-03-23 123 views
0

檢測耳機按鈕,雙擊和長按(點擊)的Android檢測耳機按鈕,雙擊和長按(點擊)的Android

我想波紋代碼

public class MediaButtonReceiver extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.e("----onReceive--", " "); 

      if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) { 

       Log.e("----jack out--", " "); 

       if (intent.getExtras().getInt("state") == 1)// if plugged 
        Toast.makeText(context, "earphones plugged", Toast.LENGTH_LONG) 
          .show(); 
       else 
        Toast.makeText(context, "earphones un-plugged", 
          Toast.LENGTH_LONG).show(); 
      } 

      if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { 
       Toast.makeText(context, "button pressed", Toast.LENGTH_LONG).show(); 
       // key=intent.getExtras().getString("EXTRA_KEY_EVENT"); 

      } 

      abortBroadcast(); 

     } 

它可以檢測耳機按鈕點擊正確

但是我們怎麼能檢測長單擊和雙擊的耳機

回答

0

對於雙擊就可以通過重載活動檢測到它

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){ 
     //check if it's the first or the second click and measure time between them 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

還有一個活動onKeyLongPress方法,但它似乎不使用耳機按鈕爲我的設備上工作的時候長按耳機按鈕,它啓動了,我谷歌:方法和測量時間每次點擊之間經過在我的活動中無法檢測到它