android 耳机判断短按、长按
来源:互联网 发布:安易数据恢复软件破解 编辑:程序博客网 时间:2024/06/10 08:30
package com.example.headlistenertest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
public class MainActivity extends Activity {
private final String TAG = "HeadListener";
private boolean longPressed = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
// 注册监听
Log.i(TAG, "onresume");
Log.i(TAG, "注册监听");
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_HEADSET_PLUG);
registerReceiver(headSetReceiver, intentFilter);
super.onResume();
}
@Override
protected void onPause() {
Log.i(TAG, "onPause");
Log.i(TAG, "取消监听");
// 取消监听
unregisterReceiver(headSetReceiver);
super.onPause();
}
private final BroadcastReceiver headSetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
String action = arg1.getAction();
if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
if (arg1.getIntExtra("state", 0) == 1) {
Log.i(TAG, "耳机插入");
// do something
} else {
Log.i(TAG, "耳机没有插入");
}
}
}
};
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if (KeyEvent.KEYCODE_HEADSETHOOK == keyCode) {
// Log.i(TAG, "按下了耳机");
if (event.getRepeatCount() == 0) {
// Log.i(TAG, "短按");
longPressed = false;
} else {
//Log.i(TAG, "长按");
longPressed = true;
}
// 这里不需要执行父类的点击事件,所以直接return
return true;
}
// 继续执行父类的其他点击事件
return super.onKeyDown(keyCode, event);
};
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_HEADSETHOOK == keyCode) {
Log.i(TAG, "音量键 up");
Log.i(TAG, "longPressed :"+longPressed);
if(longPressed){
Log.i(TAG, "长按");
}else {
Log.i(TAG, "短按");
}
return true;
}
return super.onKeyUp(keyCode, event);
}
}
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
public class MainActivity extends Activity {
private final String TAG = "HeadListener";
private boolean longPressed = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
// 注册监听
Log.i(TAG, "onresume");
Log.i(TAG, "注册监听");
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_HEADSET_PLUG);
registerReceiver(headSetReceiver, intentFilter);
super.onResume();
}
@Override
protected void onPause() {
Log.i(TAG, "onPause");
Log.i(TAG, "取消监听");
// 取消监听
unregisterReceiver(headSetReceiver);
super.onPause();
}
private final BroadcastReceiver headSetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
String action = arg1.getAction();
if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
if (arg1.getIntExtra("state", 0) == 1) {
Log.i(TAG, "耳机插入");
// do something
} else {
Log.i(TAG, "耳机没有插入");
}
}
}
};
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if (KeyEvent.KEYCODE_HEADSETHOOK == keyCode) {
// Log.i(TAG, "按下了耳机");
if (event.getRepeatCount() == 0) {
// Log.i(TAG, "短按");
longPressed = false;
} else {
//Log.i(TAG, "长按");
longPressed = true;
}
// 这里不需要执行父类的点击事件,所以直接return
return true;
}
// 继续执行父类的其他点击事件
return super.onKeyDown(keyCode, event);
};
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_HEADSETHOOK == keyCode) {
Log.i(TAG, "音量键 up");
Log.i(TAG, "longPressed :"+longPressed);
if(longPressed){
Log.i(TAG, "长按");
}else {
Log.i(TAG, "短按");
}
return true;
}
return super.onKeyUp(keyCode, event);
}
}
0 0
- android 耳机判断短按、长按
- Android系统:L版本怎样识别耳机按键长按or短按?
- Android FM耳机长按事件
- Android线控耳机长按事件
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- Android的全局键(home键/长按耳机键)详解【android源码解析八】
- android判断耳机
- Android 单击+双击+短按+长按 逻辑
- Android 按键长按与短按识别
- android 长按事件和短按事件同时响应
- Android按键长按与短按事件
- Android 短按耳机键暂停/播放FM功能的实现
- android触摸监听,短按时触发长按的原因
- Android Matrix详解
- Mahout的0.11安装与测试
- Tomcat工作原理
- Android中inflate
- LaTeX实战经验:从零开始快速入门
- android 耳机判断短按、长按
- java设计模式之单例模式
- 后台传List参数,mybatis接收遍历处理demo
- 【Unity3D 5.x实例笔记之我是小小白】Flappy Bird从开始到结束
- 正则表达式:验证手机和电话号码
- Android-APK瘦身实践
- 移动app崩溃的测试用例测试
- lua执行字节码的过程介绍
- C#学习——三种语句结构