/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package my.home.lehome.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.SystemClock; import android.view.KeyEvent; import android.widget.Toast; public class MediaButtonIntentReceiver extends BroadcastReceiver { private long sLastClickTime = 0; private long DOUBLE_CLICK_DELAY = 350; public void onReceive(Context context, Intent intent) { String intentAction = intent.getAction(); if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { return; } KeyEvent event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) { return; } int action = event.getAction(); switch (event.getKeyCode()) { case KeyEvent.KEYCODE_HEADSETHOOK: if (action == KeyEvent.ACTION_DOWN) { long time = SystemClock.uptimeMillis(); // double click if (time - sLastClickTime < DOUBLE_CLICK_DELAY) // do something Toast.makeText(context, "BUTTON PRESSED DOUBLE!", Toast.LENGTH_SHORT).show(); // single click else { // do something Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show(); } sLastClickTime = time; } break; } abortBroadcast(); } }